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.forEach((cache, cacheName) => {
if (!cacheAllowlist.includes(cacheName)) {
return caches.delete(cacheName);
}
}),
);
});
您还可以使用onactivate
属性设置事件处理程序
js
self.onactivate = (event) => {
// ...
};
规范
规范 |
---|
Service Workers # service-worker-global-scope-activate-event |
Service Workers # dom-serviceworkerglobalscope-onactivate |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。