HTML5
在过去的一个月里,我一直在开发一个非常复杂的网络应用程序。昨晚我iPhone
突然决定缓存所有 JS、CSS 和图像而不加载任何更新的副本。这也发生在我的合作伙伴iPhone
身上,所以我假设它会影响我们应用程序的所有用户。
不用说,清除浏览器缓存、删除 Web 应用程序、重新启动手机和重新启动无线连接都无法解决问题。
删除<meta name="apple-mobile-web-app-capable" content="yes">
解决了问题,但产生了一个新问题,因为我们需要应用程序像......一个应用程序一样运行。
我们也不打算将旧技巧附加?number
到所有脚本、样式表和图像的末尾。这是荒谬的。另外——如果我们要实现这样的东西,它必须是某种动态的 JS 实现。我们的应用程序是一个加载大多数脚本的 HTML 页面,并且附加页面是 AJAX 的,附加数据也是通过 AJAX 获得的。我想这可以做到,但我希望有一个更优雅的解决方案。你知道,我觉得我不应该做任何事情,因为这一切都顺利进行了整整一个月。
使用cache-control
,expires
和pragma
<meta>
标签对我们也没有任何好处,因为这纯粹是一个 iOS Web 应用程序问题。缓存在移动 Safari、移动 Chrome 和所有桌面浏览器中正常工作。iOS 似乎为用户无法清除的应用程序(包括 Web 应用程序)设置了单独的缓存。
貌似很多SO用户都遇到过这个问题,但是我找不到满意的解决方案。有没有遇到类似情况的人解决了这个问题?我可以使用清单文件来指定不缓存多个文件吗?似乎清单文件被用来做相反的事情。