如何检查服务工作者是否已经存在并使用工作箱更新

How to Check if Service worker already exists and update with workbox

想看看我们是否可以检测客户端设备上是否已经有一个活动的 service worker。

目前我使用 getRegistration 来执行此操作,但我很好奇 Workbox 是否可以自动检测是否已经存在 SW 并避免尝试注册相同的服务工作者。

Re-registering 具有相同 scope 的相同服务工作者脚本文件实际上是 no-op。你不需要避免这样做。这不是 Workbox 特有的——只是一般来说,这是可以做的事情。

唯一有效的方法是调用 navigator.serviceWorker.register() 并为服务工作者脚本传入不同的 URL,或者不同的有效 scope