PWA:iOS 12 Safari 中的积极缓存

Posted

技术标签:

【中文标题】PWA:iOS 12 Safari 中的积极缓存【英文标题】:PWA: Aggressive caching in iOS 12 Safari 【发布时间】:2018-09-20 08:52:33 【问题描述】:

我目前正在调试我的 PWA 的 QR 扫描仪,它使用了很棒的库 Instascan。除了 ios,它在任何地方都能完美运行,我正在试图找出原因。不幸的是,我的尝试被 Safari 的激进缓存阻止了。 Safari 只是不下载我的新 js 文件。我正在使用服务人员缓存这些文件。

我尝试过的:

重新加载页面 打开页面的 PWA 版本 在脚本链接末尾附加版本号 (file.js?v=2) 完全关闭 Safari 转到设置 > Safari > 删除历史记录和浏览数据 进入设置 > Safari > 高级 > 网站数据 > 删除所有网站数据

有什么方法可以确保 Safari 在文件更改时下载文件?我的服务器在普通的旧 ASP.NET 上运行。我在开发过程中禁用了捆绑和缩小,所以每个文件都添加了一个script 标签。

【问题讨论】:

我同意,当您尝试调试 Web 应用程序时,iOS 缓存非常糟糕 :) 【参考方案1】:

?v=<random code> 附加到您包含的 js 文件路径中效果很好。如果您的捆绑在 ASP.NET 中关闭,则将删除这些版本号。原来通过 ASP.NET 捆绑已经添加了随机版本号。

这个问题已经为我解决了。

【讨论】:

以上是关于PWA:iOS 12 Safari 中的积极缓存的主要内容,如果未能解决你的问题,请参考以下文章

PWA:如何以编程方式触发:“添加到主屏幕”?在 iOS Safari 上

当 PWA 启动或在 iOS Safari 中的应用程序之间切换时是不是可以获取事件

如何控制 PWA 是使用缓存版本还是获取最新版本?

如何在 Safari iOS13+ 中从 PWA 下载图像

PWA 与 Safari 网站有啥区别?

没有 PWA 的 iOS Safari 状态栏主题颜色