[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/API/ExtendableEvent [Back]  [Original]

ExtendableEvent - Web-APIs | MDN

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

View in English Always switch to English

ExtendableEvent

Baseline Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit April 2018 browserbergreifend verfgbar.

Hinweis: Diese Funktion ist nur in Service Workers verfgbar.

Das ExtendableEvent-Interface verlngert die Lebensdauer der install- und activate-Ereignisse, die im globalen Geltungsbereich als Teil des Service-Worker-Lebenszyklus ausgelst werden. Dies stellt sicher, dass funktionale Ereignisse (wie FetchEvent) erst ausgelst werden, nachdem Datenbankschemata aktualisiert und veraltete Cache-Eintrge gelscht wurden.

Wenn waitUntil() auerhalb des ExtendableEvent-Handlers aufgerufen wird, sollte der Browser einen InvalidStateError auslsen; beachten Sie auch, dass mehrmaliges Aufrufen diese stapelt und die daraus resultierenden Versprechen zur Liste der extend lifetime promises hinzugefgt werden.

Dieses Interface erbt vom Event-Interface.

Event ExtendableEvent

Hinweis: Dieses Interface ist nur verfgbar, wenn der globale Geltungsbereich ein ServiceWorkerGlobalScope ist. Es ist nicht verfgbar, wenn es sich um ein Window oder den Geltungsbereich einer anderen Art von Worker handelt.

In diesem Artikel

Konstruktor

ExtendableEvent()

Erstellt ein neues ExtendableEvent-Objekt.

Instanz-Eigenschaften

Implementiert keine spezifischen Eigenschaften, erbt jedoch Eigenschaften von seinem Elternteil, Event.

Instanz-Methoden

Erbt Methoden von seinem Elternteil, Event.

ExtendableEvent.waitUntil()

Verlngert die Lebensdauer des Ereignisses. Es soll im install Ereignishandler fr den installing-Worker und im activate Ereignishandler fr den active-Worker aufgerufen werden.

Beispiele

Dieser Codeausschnitt stammt aus dem Service-Worker-Prefetch-Beispiel (siehe prefetch example live). Der Code ruft ExtendableEvent.waitUntil() in oninstall auf und verzgert die Behandlung des ServiceWorkerRegistration.installing-Workers als installiert, bis das bergebene Versprechen erfolgreich aufgelst wird. Das Versprechen wird aufgelst, wenn alle Ressourcen abgerufen und zwischengespeichert wurden oder wenn eine Ausnahme auftritt.

Der Codeausschnitt zeigt auch eine bewhrte Methode zur Versionierung von Caches, die vom Service-Worker verwendet werden. Obwohl in diesem Beispiel nur ein Cache vorhanden ist, kann derselbe Ansatz fr mehrere Caches verwendet werden. Es wird eine Kurzbezeichnung fr einen Cache auf einen spezifischen, versionierten Cachenamen abgebildet.

Hinweis: In Chrome sind Protokollierungsanweisungen ber die "Inspect"-Schnittstelle fr den relevanten Service-Worker zugnglich, der ber chrome://serviceworker-internals aufgerufen wird.

js
const CACHE_VERSION = 1;
const CURRENT_CACHES = {
  prefetch: `prefetch-cache-v${CACHE_VERSION}`,
};

self.addEventListener("install", (event) => {
  const urlsToPrefetch = [
    "./static/pre_fetched.txt",
    "./static/pre_fetched.html",
    "https://www.chromium.org/_/rsrc/1302286216006/config/customLogo.gif",
  ];

  console.log(
    "Handling install event. Resources to pre-fetch:",
    urlsToPrefetch,
  );

  event.waitUntil(
    caches
      .open(CURRENT_CACHES["prefetch"])
      .then((cache) =>
        cache.addAll(
          urlsToPrefetch.map(
            (urlToPrefetch) => new Request(urlToPrefetch, { mode: "no-cors" }),
          ),
        ),
      )
      .then(() => {
        console.log("All resources have been fetched and cached.");
      })
      .catch((error) => {
        console.error("Pre-fetching failed:", error);
      }),
  );
});

Hinweis: Beim Abrufen von Ressourcen ist es sehr wichtig, {mode: 'no-cors'} zu verwenden, wenn die Mglichkeit besteht, dass die Ressourcen von einem Server bereitgestellt werden, der CORS nicht untersttzt. In diesem Beispiel untersttzt www.chromium.org kein CORS.

Spezifikationen

Spezifikation
Service Workers Nightly
# extendableevent-interface

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page