【问题标题】:Javascript caching on iPad HTML5 fullscreen web applicationiPad HTML5 全屏 Web 应用程序上的 Javascript 缓存
【发布时间】:2012-05-06 13:20:28
【问题描述】:

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

  • 我没有使用任何类型的缓存清单;
  • 当我在 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>

【问题讨论】:

  • 我相信如果您在隐私模式下查看该页面,它将不会被缓存。试一试。
  • 不幸的是,我无法测试它,因为在添加了上面的参数然后再次删除它之后,缓存问题不再发生,就像那样。也许是零星的iOS错误?无论如何,感谢您的提示;下次遇到缓存错误时我会尝试。
  • 刚刚在 iOS 7.0.4 上遇到了同样的问题。我没有添加参数;重启 iPad 后问题就消失了。
  • 我也注意到了其他一些奇怪的行为。我在调试时添加了几个新的图标链接,每次添加一个之前的名称都会更改为原始图标链接的名称。我在重启iPad之前删除了所有的图标链接,但是重启后又出现了一半。
  • 我遇到了这个问题,因为没有刷新在 iframe 中加载的 .js 文件,并且仅在主屏幕模式下。它也帮助我删除了浏览器历史记录,而不仅仅是人们期望的缓存。在 ipad 上使用 iOS7。希望这对某人有所帮助。

标签: javascript ios ipad caching


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 2017-08-17
    • 1970-01-01
    • 2012-10-29
    相关资源
    最近更新 更多