iPad HTML5 全屏 Web 应用程序上的 Javascript 缓存

Javascript caching on iPad HTML5 fullscreen web application

本文关键字:程序上 Javascript 缓存 应用程序 应用 HTML5 全屏 Web iPad      更新时间:2023-09-26

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

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

有人知道发生了什么吗?

--更新--

这似乎是一个iOS 5错误。

--

解决方法(又名丑陋的黑客) --

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

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

成为:

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

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