Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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():

js
addEventListener("activate", (event) => { })

Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:

js
onactivate = (event) => { }

Ereignistyp

Ein ExtendableEvent. Erbt von Event.

Event ExtendableEvent

Beispiele

Der folgende Ausschnitt zeigt, wie Sie mit einem activate-Event-Handler einen Cache aktualisieren können.

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;
        }),
      ),
    ),
  );
});

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:

js
self.onactivate = (event) => {
  // …
};

Spezifikationen

Spezifikation
Service Workers Nightly
# service-worker-global-scope-activate-event
Service Workers Nightly
# dom-serviceworkerglobalscope-onactivate

Browser-Kompatibilität

Siehe auch