【发布时间】: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