首页 > 解决方案 > Workbox:当有一个新的服务工作者时,它会加载但等待

问题描述

我在 Windows Pro 10 上工作并使用 Workbox 6.x。作为测试,在 Chrome 中:

我想要的是更新的服务工作者立即被激活,但 DevTools 说它正在等待。

文档说默认情况下这将被添加到服务工作者中:

  self.addEventListener('message', event => {
    if (event.data && event.data.type === 'SKIP_WAITING') {
      self.skipWaiting();
    }

我检查并确实添加了代码,

那么为什么不 skipWaiting 做这项工作呢?

谢谢,

吉尔斯普兰特

标签: javascriptservice-workerworkbox

解决方案


您是否使用workbox-build generateSW来生成您的服务人员?因为默认skipWaiting设置为false。您可以在 docstring中查看它,也可以在defaults中查看。

如果你只是想在waiting开发时跳过 service worker 状态,你可以在 Chrome Dev Tools 中启用Update on Reload 。

重新加载更新

另外,请注意skipWaiting() 的危险


推荐阅读