gpt4 book ai didi

html - iOS6 网络应用程序的最大缓存大小是多少?我该如何扩展它?

转载 作者:太空狗 更新时间:2023-10-29 14:47:36 25 4
gpt4 key购买 nike

我正在构建一个专门用于 iPad(运行 iOS 6+)的网络应用程序,用于显示公司的产品系列。

使用 HTML5 的“cache.manifest”文件,一切都完美无缺。但是由于缓存已经增长到大约 50MB,iPad 不再保存应用程序数据。根据 Safari 设置,缓存大小现在为 0.1KB,而不是 50MB。

那么 Safari 对 Web 应用的缓存的实际限制是多少,有没有办法扩大应用缓存的最大数量?

最佳答案

2014 年 6 月 2 日编辑:iOS7.1 上的最大缓存大小为 300Mb。

最近一位客户问了我这个确切的问题,所以我进行了调查。

根据 IOS6(我所有的测试都是在 iOS6.1 上完成的),这是两个不同的东西:

  • 使用 .manifest 的网站,可通过移动 Safari 访问
  • 从网站创建的主屏幕上的网络应用

具有 .manifest 的网站最多可使用 50mb 的缓存,但需征得用户许可。不能再用了。这个值可以在 settings/safari/advanced 中找到并清除。如果您尝试在缓存中填充更多内容,一个 error事件将发生,并且 window.applicationCache.status将进入空闲状态。

webapp 与其网站共享相同的缓存。清除缓存设置/safari/advanced 不会为您的主屏幕 webapp 做任何事情。它会在没有用户输入的情况下接受超过 50mb 的缓存,但我不知道到底有多少(我成功地测试了 60mb,完全可以离线访问。*编辑:尝试了 83mb,成功)我不知道在 iOS 设置中哪里可以看到这些数据。我想没有地方。

在我找到 spec 之前,测试它是一件痛苦的事 *** .有一个 API 可以在 iOS6 上完美运行。
你应该检查 window.applicationCache.status ,它告诉您应用程序的状态是什么,以及以下事件(从我的代码中剪切和粘贴,以及它们的监听器):

window.applicationCache.addEventListener('checking', onChecking);
window.applicationCache.addEventListener('noupdate', onNoupdate);
window.applicationCache.addEventListener('downloading', onDownloading);
window.applicationCache.addEventListener('progress', onProgress);
window.applicationCache.addEventListener('cached', onCached);
window.applicationCache.addEventListener('updateready', onUpdateready);
window.applicationCache.addEventListener('obsolete', onObsolete);
window.applicationCache.addEventListener('error', onError);

所有人都在 iOS 6.1 上工作,甚至是 progress事件 event.loadedevent.total

Web 应用程序从检查开始,然后触发 noupdate如果 .manifest 相同。状态是 IDLE .

如果 .manifest 更改,状态为 DOWNLOADING , progress list 中的每个文件都会触发事件,然后状态为 UPDATEREADYupdateready火灾。

如果您处于离线状态,一个 error事件触发,状态为 IDLE .

您可以使用

测试在线/离线状态
var online = navigator.onLine ? 'online' : 'offline';

它可以工作,但规范说明它不可靠。

还有三件事要完成:

  • 我的 list 被命名为 cache.manifest 并像这样声明 <html manifest="cache.manifest">
  • 我的 .htaccess 有 AddType text/cache-manifest manifestExpiresByType text/cache-manifest "access plus 0 seconds"
  • 我的应用有 <meta name="apple-mobile-web-app-capable" content="yes">

有了这个 API,就可以更轻松地了解幕后发生的事情。不过一定要自己做测试,我不能 100% 确定这个结果,或者他们可以使用新的 iOS 版本。我将进一步测试最大尺寸。

关于html - iOS6 网络应用程序的最大缓存大小是多少?我该如何扩展它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14876018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com