如何强制服务工作者更新?

新手上路,请多包涵

我正在使用 sw-precache 通过 Polymer CLI 构建过程生成我的服务工作,因此它旨在更新更新文件的哈希值以表示需要更新缓存。但是我更新的内容并没有在缓存中被替换,所以如果我用 ctrl+r 刷新它会得到一个旧版本但是如果我用 ctrl+shift+r 刷新它会得到新版本。一个原因可能是我的 service worker 没有更新。

该文档 指出

如果 service worker 文件与其当前的文件相比即使有一个字节的差异,它也会认为它是新的。

,但是如果我的新 service worker 没有改变一个字节怎么办? (如果只有一个哈希发生变化,就会发生这种情况)。如何配置 sw-precache 以在每次新请求时更新服务工作?

原文由 Jp_ 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 234
1 个回答

正如前面的答案所述,浏览器有 1 天(24 小时)的内置限制来查找 service worker 的更新,但您需要注意的是您仍然需要调用 .update() 在你的 ServiceWorkerRegistration 对象上,否则将使用文件的原始版本。

在 Chrome 中测试更改时,我总是在处理我的服务工作者脚本时右键单击刷新按钮并选择“清空缓存和硬重置”(当开发人员工具打开时选项可用)。

原文由 jcaruso 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏