【问题标题】:offline web page caching with persistent data具有持久数据的离线网页缓存
【发布时间】:2020-05-23 13:44:07
【问题描述】:

您好,我正在尝试使我的 HTML 网页在 android 和 IOS 设备上脱机。我的问题是我需要存储大量数据。这些数据(css、js、images、html)需要持久化。 (即使在设备关闭后)

使用:有人键入 URL 并让整个页面离线可用。

持久化数据的最佳方式是什么?是否有可能不制作混合或原生应用程序,只使用缓存,也许还有 appcache/indexeddb。

编辑:我发现索引数据库与 dexies 相结合我最好的猜测是解决方案。你们有什么注意事项、替代方案或教程吗?

【问题讨论】:

  • 请添加您的示例代码来描述您的问题,这会有所帮助。
  • 嘿,谢谢您的回复,我没有具体的代码,因为我不知道应该使用哪种类型的 chaching/storage。这是一个关于如何仅使用缓存而没有本机或混合应用程序从 android 浏览器存储持久数据的一般性问题。我希望有人对 html 持久缓存有所了解。
  • 这应该会为您提供一些研究所需的信息。 developers.google.com/web/fundamentals/instant-and-offline/…
  • 非常感谢,这篇文章很有帮助。我现在要开始使用 chache API 和 Indexeddb 进行测试。

标签: android html caching progressive-web-apps browser-cache


【解决方案1】:

根据应用程序的个性,我有时会在安装/激活 Service Worker 时在 Service Worker 中渲染整个站点/应用程序。 我写了一个关于我去年 10 月为会议所做的示例应用程序,https://love2dev.com/pwa/pubcon/

就策略而言,我会有所不同。对于数据(想想 JSON),我倾向于缓存在 IndexedDB 中(我喜欢 localforage b/c,它很简单)。 对于站点资产(HTML、JS、CSS、字体和媒体),我使用服务工作者缓存。 如果一个网站的媒体很重,我将图像和视频保存在 IDB b/c iOS 中,将 service worker 缓存限制为 50MB。对于任何 Web 应用程序核心资产来说,50MB 应该绰绰有余,因为它们实际上应该以 kb 来衡量,而不是 MB。 iOS 为您提供数 GB 的 IDB 存储空间,具体取决于设备上可用的磁盘空间。 我已经使用这种策略构建了多个 SAAS 应用程序,并且从未达到数据配额。当然,大量视频或图像当然会占用更多空间,您需要注意配额超出错误。

系统还会提示用户授予扩展存储权限,因此请注意这一障碍,因为您可能需要对用户进行相关教育。

【讨论】:

  • 非常感谢这个帖子也很有帮助!我将尝试使用该策略和结构来保存我的数据、缓存等。看来,目前我不会达到任何缓存限制。阅读这篇文章,这是我的应用程序应该提供的一个很好的例子!有没有关于这个 pubcon 应用程序的更多详细信息?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-25
  • 1970-01-01
  • 1970-01-01
  • 2013-05-25
  • 2016-06-07
  • 2021-12-26
相关资源
最近更新 更多