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

标签 javascript ios ipad caching

我遇到了一个问题,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/

相关文章:

javascript - JS : Call async function before exporting something

javascript - Cypress:如果没有找到任何元素,我可以防止 Cypress cy.get 失败吗?

objective-c - iPhone 号码文本到完整的货币等式

ios - 如何将文本字段中的数据保存到表格 View 中?

iphone - MFMessageComposeViewController 继续之前的对话

ios - 在设备上自动下载 Testflight 构建

iphone - 将应用程序购买字符串标识符更改为对象(在 ios 5 上已弃用)

javascript - 用 JS 函数替换链接的最佳方法是什么?

javascript - 如何从不同输入的模态中获取值

ios - UIImage 在将其转换为 CIImage、然后转换为 CGImage 并返回 UIImage 时失去其方向