缓存清单大小限制与Web应用程序

27

我正在计划编写一个应用程序,仍在选择我想使用的技术来编写该应用程序。最初的想法是编写Web应用程序,但这样无法离线查看。然后我发现了缓存清单,这似乎是一个可能的答案。

然而,自从第一个点以来,似乎缓存清单有大小限制。我找不到每个浏览器的完整大小限制列表,因此我无法确定它是否完全具有破坏性(尽管我认为可能会)。我希望该应用程序可以在Firefox、Chrome和移动Safari浏览器上正常工作(即必须在iPad上工作)。

我了解到,在大多数情况下,总缓存限制约为5MB(各浏览器之间有所不同),但这对我的需求来说不够。我想将所有用户在线数据离线存储。这包括上传的文件(PDF、图片)以及使应用程序有效运行所需的内容。在我看到的任何示例中,缓存清单仅用于缓存像网站的HTML、CSS、JavaScript和图像资源之类的离线内容。它适用于离线存储用户上传的PDF吗?

如果这个问题的答案是“绝对不行”(我担心可能是这样),是否有其他解决方案?或者在浏览器中创建一个“适当的”应用程序——即,具有合理空间需求的应用程序——在目前完全不可行吗?我们还在等待浏览器满足开发要求吗?

编辑:只是想补充一下,我知道HTML5规范中没有Cache-Manifest限制,但实现似乎都有限制,这将影响我尝试编写的任何东西。

5个回答

8

我这里还有一个在iOS设备上的测试:https://dev59.com/63E85IYBdhLWcg3wLAQV#10195265 - KimKha

2
如果还有人对此有疑问... 我目前有一个应用程序,它有44MB的资源,已经成功下载并在Safari(6.1),Chrome(31),Firefox(26),iPad(ios7)和iPhone(ios6)上进行了离线测试。唯一的问题是当你把应用加到主屏幕时。我决定这是因为应用太大,需要扩展缓存,但没有处理这个问题,结果就会出现错误。解决方法 -> 重新加载应用程序。关闭,打开,并重新保存缓存 = 解决问题。

3
你是如何绕过5MB的限制的?是通过浏览器许可来增加它吗? - Titan

0

移动设备

| Chrome | Android Browser | Firefox | Safari | Safari | iOS WebView | iOS WebView |
|   40   |       4.3       |   34    |   6,7  |   8    |     6,7     |      8      |
|    ~   |        ∞        |    ∞    |  300MB | 300MB  |    100MB    |    100MB    |

桌面

| Chrome | Firefox |   Safari   |   Safari  |   IE   |   IE   |
|   40   |    34   |     6,7    |     8     |    9   |  10,11 |
|    ~   |  500MB  |      ∞     |     ∞     |    ?   |  100MB |

参考链接


“参考链接”已过时,重新链接到web.dev。此页面https://web.dev/learn/pwa/offline-data/介绍了一些在浏览器中保存数据的网络技术。 - Yang_____

0

抱歉,我会将此添加到原始内容中。我已经进行了研究并知道没有规范限制。但这并不意味着在实践中没有限制!关于5MB的问题,这个数字是我从维基文章中获取的(有些浏览器甚至可以达到10MB)。 - V.S.
在 Chrome 中,我实现了高达12MB的应用程序缓存大小。 - Laurens Rietveld

0

Android 设备中 Appcache 的大小限制为 5 MB。如果您正在为 Android 设备创建混合应用程序,则需要确保 appcache 不超过 5MB。否则,一旦它达到大小限制,appcache 下载将失败。

其他设备(iPhone、Windows、BlackBerry 等)不会出现同样的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接