为了账号安全,请及时绑定邮箱和手机立即绑定

如何更新 Service Worker?

如何更新 Service Worker?

慕标5832272 2021-10-14 17:12:51
情况:在 mywebsite.com/game 上,我注册了一个 service-workernavigator.serviceWorker.register('/service-worker.js', {scope: "/"});在我的服务器上,'/service-worker.js'maxAge 为1d.问题:service-worker.js有一个重大错误。它总是显示一个空页面并且无法获取任何内容。service-worker.js必须改变。问题是每当用户转到 时mywebsite.com/game,它会显示空页面并且什么也不做。我无法让客户端获取新的service-worker.js.我怎样才能让客户端获取新的service-worker.js?
查看完整描述

2 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

您所描述的——检查更新——/service-worker.js在本文所述的情况下默认自动发生:

如果发生以下任一情况,将触发更新:

  • 到范围内页面的导航。

  • 推送和同步等功能事件,除非在过去 24 小时内进行了更新检查。

  • .register()仅在 Service Worker URL 已更改时调用。但是,您应该避免更改工作程序 URL。

所有现代 Web 浏览器都会忽略Cache-Control/service-worker.js默认设置的任何标头,并直接针对 Web 服务器获取最新副本。

如果您希望它的行为类似于“终止开关”,则此Stack Overflow 答案针对修订后的service-worker.js文件应包含的内容提供了一些最佳实践。


查看完整回答
反对 回复 2021-10-14
?
ITMISS

TA贡献1871条经验 获得超8个赞

只需像这样将 ?v=1 添加到您的脚本中。

navigator.serviceWorker.register('/service-worker.js?v=1', {scope: "/"});

并在更改 Service Worker 的脚本时增加脚本版本的数量


查看完整回答
反对 回复 2021-10-14
  • 2 回答
  • 0 关注
  • 448 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号