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.
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.
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> |