是否有可能在不使用间隔方法的情况下检测前端新服务工作者的激活(而不是安装!)?
答案 0 :(得分:2)
如果您花时间了解ServiceWorkerContainer和ServiceWorkerRegistration界面的基本想法,这非常简单。
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.
}
);