ServiceWorkerGlobalScope: activate-Ereignis
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.
Das activate-Ereignis der Schnittstelle ServiceWorkerGlobalScope wird ausgelöst, wenn eine ServiceWorkerRegistration einen neuen aktiven Worker unter ServiceWorkerRegistration.active erhält.
Dieses Ereignis kann nicht abgebrochen werden und wird nicht weitergereicht.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("activate", (event) => { })
Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:
onactivate = (event) => { }
Ereignistyp
Ein ExtendableEvent. Erbt von Event.
Beispiele
Der folgende Ausschnitt zeigt, wie Sie mit einem activate-Event-Handler einen Cache aktualisieren können.
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 Eigenschaft onactivate einrichten. Beachten Sie jedoch, dass dadurch gegebenenfalls andere über onactivate hinzugefügte Event-Listener ersetzt werden:
self.onactivate = (event) => {
// …
};
Spezifikationen
| Spezifikation |
|---|
| Service Workers Nightly> # service-worker-global-scope-activate-event> |
| Service Workers Nightly> # dom-serviceworkerglobalscope-onactivate> |