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 |
瀏覽器相容性
載入中…