检测前端的服务工作者激活

时间:2017-10-26 13:17:26

标签: javascript service-worker progressive-web-apps service-worker-events

是否有可能在不使用间隔方法的情况下检测前端新服务工作者的激活(而不是安装!)?

1 个答案:

答案 0 :(得分:2)

如果您花时间了解ServiceWorkerContainerServiceWorkerRegistration界面的基本想法,这非常简单。

ServiceWorkerContainer触发一个可以像这样收听的“controllerchange”事件:

navigator.serviceWorker.addEventListener(
    "controllerchange",
    (activationEvent)=>{
        var activatedSW = navigator.serviceWorker.controller;
        //do anything with the activated service worker, e.g. opening a message channel to it, etc.
    }
);