ServiceWorkerGlobalScope: activate-Event
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit April 2018 browserübergreifend verfügbar.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist nur in Service Workers verfügbar.
Der activate-Event des ServiceWorkerGlobalScope-Interfaces wird ausgelöst, wenn eine ServiceWorkerRegistration einen neuen ServiceWorkerRegistration.active-Worker übernimmt.
Dieser Event kann nicht abgebrochen werden und wird nicht weitergeleitet.
Syntax
Verwenden Sie den Event-Namen in Methoden wie addEventListener() oder setzen Sie eine Event-Handler-Eigenschaft.
addEventListener("activate", (event) => { })
onactivate = (event) => { }
Eventtyp
Ein ExtendableEvent. Erbt von Event.
Beispiele
Das folgende Codebeispiel zeigt, wie ein activate-Event-Handler verwendet werden könnte, um einen Cache zu aktualisieren.
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;
}),
),
),
);
});
Sie können den Event-Handler auch über die onactivate-Eigenschaft einrichten:
self.onactivate = (event) => {
// …
};
Spezifikationen
| Spezifikation |
|---|
| Service Workers Nightly> # service-worker-global-scope-activate-event> |
| Service Workers Nightly> # dom-serviceworkerglobalscope-onactivate> |