在iPad HTML5全屏Web应用程序上进行Javascript缓存

时间:2012-04-25 19:51:35

标签: javascript ios ipad caching

我遇到的问题是iPad坚持加载.js文件的旧副本,而不是当前的。奇怪的是,这只发生在页面处于全屏模式时,而不是从页面运行时。

  • 我没有使用任何类型的缓存清单;
  • 当我在Safari上打开页面时,它的行为与最新版本的.js相同;
  • 当我通过图标打开页面时,它的行为与旧的.js相反;
  • 杀死正在运行的应用程序,删除图标然后再次创建它并不能解决问题;它仍在使用旧的.js,即使在全屏时也是如此。

有没有人知道发生了什么?

- 更新 -

这似乎是iOS 5 bug

- 解决方法(a.k.a.丑陋的黑客) -

只需在脚本标记中添加一些虚假的http参数,以便缓存认为它完全是另一个JS:

<script src="js/pentaho-jqm-repository.js"></script>

变为:

<script src="js/pentaho-jqm-repository.js?fkn-ios-bug=1"></script>

1 个答案:

答案 0 :(得分:2)

使用上述解决方法(向URL添加假参数)然后将其更改回来后,奇怪的是,问题停止发生。当然,在生产环境中,人们无法做到这一点,所以我想我只是开始编写js版本,以便最终用户不会遇到这个问题。