应用程序缓存:iPad上的奇怪行为

时间:2011-09-26 10:57:42

标签: ipad offline-caching application-cache offline-browsing

我正在创建一个网站,用户可以在其中说明要缓存的项目。基于此,生成清单文件。通过这样做,用户仍然可以在他离线时浏览网站。这在Google Chrome中都运行良好。但是在iPad上却无法正常工作。 有时事情会被缓存,有时甚至不是我访问过的页面。

我们整个上午都在测试2台iPad,但我们无法在两台iPad上获得相同的结果。即使我们做同样的事情,我们有时会得到不同的结果。

所以我们做了什么:

  • 打开WiFi
  • 浏览网站
  • 进行一些设置,以便将一些页面/图像/ ...添加到清单文件
  • 关闭WiFi
  • 返回safari刷新/浏览到应缓存的页面。

有时在一台iPad上(这是iPad 1),它的工作原理应该如此,但有时根本不起作用。 在另一台iPad(这是iPad 2)上,它永远不会完全正常工作。只是一些随机的结果。

当我们完全关闭safari,然后清除缓存然后执行下载和缓存内容的整个过程时,结果看起来也不同......

有人可以帮我解决这个问题吗?此刻屁股真的很痛苦...... :(

4 个答案:

答案 0 :(得分:2)

  1. 打开网络服务器(IIS)
  2. 选择网站
  3. 打开MIME类型
  4. 添加或修改为text/cache-manifest
  5. 在命令提示符iisreset
  6. 重置iis

    它对我有用。

答案 1 :(得分:0)

我在使用ipad缓存时遇到了一些问题。

  1. 由于Windows托管,清单文件的MIME类型未正确设置。 Windows服务器上的标准MIME类型是“application / x-ms-manifest”。这是在ClickOnce应用程序生效时创建的。处理safari所需的MIME类型是:“text / cache-manifest”

  2. ipad上的缓存大小太小(你应该收到警告放大)

  3. Ipad需要时间!我注意到当您看到所有资产或网站被“加载”时,缓存未填充。在将网站放置到主屏幕之前,将其加载到正常加载时间的两倍。

  4. 缓存缓存:)只有在服务器上的修改日期发生变化时,iPad才会重新加载文件。因此,当您真的想要测试时,清除iPad上的所有缓存,删除主屏幕上的链接并再次上传所有文件。

  5. 结论:耗费时间!

    提示:在桌面或iPad上的safari中打开调试控制台。如果你做错了什么或者它是iPad上的缓存问题,它会提供一个公平的想法。

答案 2 :(得分:0)

看起来问题与应用程序缓存没有任何关系。这在某种程度上是cookie /我动态构建清单文件的方式的问题。

答案 3 :(得分:0)

我想稍微回应一下Pieter-Paulus Vertongen,我有类似的Windows托管经验。

根据Safari中的调试控制台,清单文件的mime类型被误读,结果没有下载任何内容。

我将所有文件(包括.htaccess文件)复制到linux服务器而不更改文件中的任何内容......然后缓存工作得非常好。

所以是的,这可能是托管文件的问题。使用调试控制台和Jonathan Stark的代码找出:

http://jonathanstark.com/blog/debugging-html-5-offline-application-cache?filename=2009/09/27/debugging-html-5-offline-application-cache/