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

View in English Always switch to English

InstallEvent

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more support for this feature? Tell us why.

Der Parameter, der an eine install-Ereignishandler-Funktion übergeben wird, die InstallEvent-Schnittstelle, repräsentiert eine Installationsaktion, die im ServiceWorkerGlobalScope eines ServiceWorker gesendet wird. Als Kind von ExtendableEvent stellt sie sicher, dass funktionale Ereignisse wie FetchEvent während der Installation nicht gesendet werden.

Diese Schnittstelle erbt von der ExtendableEvent-Schnittstelle.

Event ExtendableEvent InstallEvent

Konstruktor

InstallEvent()

Erstellt ein neues InstallEvent-Objekt.

Instanzeigenschaften

Erbt Eigenschaften von ihrem Elternteil, ExtendableEvent.

Instanzmethoden

Erbt Methoden von ihrem Elternteil, ExtendableEvent.

addRoutes()

Gibt eine oder mehrere statische Routen an, die Regeln für das Abrufen bestimmter Ressourcen definieren, die sogar vor dem Start des Service Workers verwendet werden.

Beispiele

Dieses Codebeispiel stammt aus dem Service Worker Prefetch-Beispiel (siehe Prefetch live ausführen.) Der Code ruft ExtendableEvent.waitUntil() in ServiceWorkerGlobalScope.oninstall auf und verzögert die Behandlung des ServiceWorkerRegistration.installing-Workers als installiert, bis das übergebene Versprechen erfolgreich aufgelöst wird. Das Versprechen wird aufgelöst, wenn alle Ressourcen abgerufen und zwischengespeichert wurden oder wenn eine Ausnahme auftritt.

Der Codeausschnitt zeigt auch eine bewährte Methode zur Versionierung von Caches, die vom Service Worker verwendet werden. Obwohl dieses Beispiel nur einen Cache hat, können Sie diesen Ansatz für mehrere Caches verwenden. Der Code ordnet einem Cache einen kürzeren Bezeichner einem bestimmten, versionierten Cachename zu.

Hinweis: Protokollaussagen sind in Google Chrome über die "Inspect"-Schnittstelle für den relevanten Service Worker sichtbar, auf den über chrome://serviceworker-internals zugegriffen 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);
      }),
  );
});

Spezifikationen

Spezifikation
Service Workers Nightly
# installevent

Browser-Kompatibilität

Siehe auch