【问题标题】:Workbox: when there is a new service worker, it loads but waitsWorkbox:当有新的 Service Worker 时,它会加载但等待
【发布时间】:2021-03-02 22:22:09
【问题描述】:

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

  • 我正在加载我的网站
  • 在桌面上创建本地应用
  • 启动应用程序
  • 按 F12 进入开发工具
  • 离线检查
  • 更改其中一个文件并重建站点
  • 发布网站
  • 离线检查

我希望更新后的 service worker 立即激活,但 DevTools 说它正在等待。

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

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

我检查了一下,确实添加了代码,

那么为什么不让 skipWaiting 完成这项工作呢?

谢谢,

吉尔斯·普兰特

【问题讨论】:

    标签: javascript service-worker workbox


    【解决方案1】:

    您是否正在使用 workbox-build generateSW 来生成您的 Service Worker?因为默认情况下skipWaiting 设置为 false。你可以查看here in the docstring,这里是defaults

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

    另外,请注意dangers of skipWaiting()

    【讨论】:

    • 嗨,是的,我使用 generateSW 来生成 service worker。感谢您提供信息。
    猜你喜欢
    • 2023-04-06
    • 2021-01-14
    • 2021-03-17
    • 1970-01-01
    • 2017-10-21
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多