javascript - 检测前端 Service Worker 激活

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

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

最佳答案

如果您花时间了解 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.
    }
);

关于javascript - 检测前端 Service Worker 激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46955415/

相关文章:

javascript - service worker CacheAPI 使用 `Time Cached` 属性和 cache.matchAll

javascript - Angular2 PWA/Safari 无法在新窗口中打开链接

service-worker - 跨多个子域使用 Service Worker

javascript - 将 onclick javascript 函数添加到模板 block Python Flask 路由

javascript - 将图像和内容放入 jQuery 对话框中

javascript - 用 Jest 模拟高阶组件

javascript - FCM Web后台服务人员

push-notification - 在推送管理器订阅中更改应用程序服务器 key

safari - Safari 上的 IndexedDB 能保证持久吗?

javascript - 嵌套复杂 JSON 中的搜索键