我遇到了一个问题,iPad 坚持加载 .js 文件的旧副本,而不是当前副本。奇怪的是,这只发生在页面处于全屏模式时,而不是在从页面运行时。
- 我没有使用任何类型的缓存 list ;
- 当我在 Safari 上打开页面时,它的行为符合最新版本的 .js 的指示;
- 当我通过图标打开页面时,它的行为与旧 .js 指示的一样;
- 杀死正在运行的应用程序,删除图标然后重新创建它并不能解决问题;即使在全屏模式下,它仍在使用旧的 .js。
有人知道发生了什么事吗?
-- 更新--
这似乎是一个 iOS 5 bug .
-- 解决方法(又名丑陋的 hack)--
只需在脚本标签中添加一些伪造的 http 参数,让缓存认为它完全是另一个 JS:
<script src="js/pentaho-jqm-repository.js"></script>
变成:
<script src="js/pentaho-jqm-repository.js?fkn-ios-bug=1"></script>
最佳答案
在使用上述解决方法(向 URL 添加假参数)然后将其改回后,奇怪的是,问题不再发生了。当然,在生产环境中,这是做不到的,所以我想我会开始对js版本进行编号,这样最终用户就不会遇到这个问题。
关于iPad HTML5 全屏 Web 应用程序上的 Javascript 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10322749/