【问题标题】:New Service Worker Update in Production生产中的新 Service Worker 更新
【发布时间】:2019-03-07 10:26:42
【问题描述】:

我遇到了关于 Service Worker 更新的问题。我已经在生产环境中部署了我的代码,现在我们在服务工作者中进行了一些更改,在我部署到生产环境时完成更改后,我没有在设备上进行任何更改。

请帮帮我

继续上述问题...

在我所做的这个问题上花了一些时间之后,我在 queryParam 中的 serviceworker 的 url 中放置了一个版本,例如主页- var workerVersion = 'v1' 并在 sw.js?ver=workerVersion 注册。

现在在页面加载时,如果版本不同,我会使用 getRegistration() 方法检查之前注册的版本,然后首先取消注册现有工作人员并安装具有最新版本的新工作人员。

有没有更好的方法?

【问题讨论】:

  • 你能分享你的代码吗?您的服务工作者中应该有一个缓存名称。当您需要移动到新版本时,您会更改名称,这应该会触发对新版本的更改。当你最初测试这个场景时发生了什么?
  • 不,我不能共享代码,但是是的,我已经更改了缓存名称,我正在从服务工作者导入另一个 .js 文件,在那个 importscript js 中,我拥有所有的实现,那个 importScript 文件没有更新

标签: service-worker progressive-web-apps


【解决方案1】:

你读过this section吗?
另外,您在安装事件中使用self.skipWaiting() 吗?如果不是,可能是新版本正在等待页面关闭。

【讨论】:

  • 是的,我在 service worker 的 install 事件中使用 self.skipWaiting(),仍然没有更新我的 serviceWorker
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-08
  • 2018-06-27
  • 2020-06-20
  • 1970-01-01
  • 1970-01-01
  • 2019-11-03
相关资源
最近更新 更多