ServiceWorkerGlobalScope:activate 事件
注意:此功能仅在 Service Workers 中可用。
当 ServiceWorkerRegistration 获得一个新的 ServiceWorkerRegistration.active 工作线程时,会触发 ServiceWorkerGlobalScope 接口的 activate 事件。
此事件不可取消,也不会冒泡。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("activate", (event) => { })
onactivate = (event) => { }
事件类型
一个 ExtendableEvent。继承自 Event。
事件属性
没有实现任何特定的属性,但继承了其父级 Event 的属性。
示例
以下代码片段展示了如何使用 activate 事件处理程序来升级缓存。
js
self.addEventListener("activate", (event) => {
const cacheAllowlist = ["v2"];
event.waitUntil(
caches.keys().then((cacheNames) =>
Promise.all(
cacheNames.map((cacheName) => {
if (!cacheAllowlist.includes(cacheName)) {
return caches.delete(cacheName);
}
return undefined;
}),
),
),
);
});
您也可以通过 onactivate 属性设置事件处理程序。
js
self.onactivate = (event) => {
// …
};
规范
| 规范 |
|---|
| Service Workers # service-worker-global-scope-activate-event |
| Service Workers # dom-serviceworkerglobalscope-onactivate |
浏览器兼容性
加载中…