| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/API/ExtendableEvent | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
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.
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.
ExtendableEvent()Erstellt ein neues ExtendableEvent-Objekt.
Implementiert keine spezifischen Eigenschaften, erbt jedoch Eigenschaften von seinem Elternteil, Event.
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.
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.
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.
| Spezifikation |
|---|
| Service Workers Nightly # extendableevent-interface |
ExtendableEventDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |