Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
ExtendableEvent: waitUntil()-Methode
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
Hinweis: Diese Funktion ist nur in Service Workers verfügbar.
Die ExtendableEvent.waitUntil()-Methode informiert den Ereignis-Dispatcher darüber, dass Arbeit im Gange ist. Sie kann auch verwendet werden, um festzustellen, ob diese Arbeit erfolgreich war. In Service-Workern teilt waitUntil() dem Browser mit, dass Arbeit im Gange ist, bis das Promise erfüllt wird, und er sollte den Service-Worker nicht beenden, wenn er möchte, dass diese Arbeit abgeschlossen wird.
Die install-Ereignisse in Service-Workern verwenden waitUntil(), um den Service-Worker in der installing-Phase zu halten, bis die Aufgaben abgeschlossen sind. Wenn das an waitUntil() übergebene Promise abgelehnt wird, gilt die Installation als fehlgeschlagen und der installierende Service-Worker wird verworfen. Dies wird hauptsächlich verwendet, um sicherzustellen, dass ein Service-Worker nicht als installiert gilt, bis alle Kern-Caches, von denen er abhängt, erfolgreich gefüllt sind.
Die activate-Ereignisse in Service-Workern verwenden waitUntil(), um funktionale Ereignisse wie fetch und push zu puffern, bis das an waitUntil() übergebene Promise erfüllt ist. Dies gibt dem Service-Worker Zeit, Datenbankschemata zu aktualisieren und veraltete caches zu löschen, sodass sich andere Ereignisse auf einen vollständig aktualisierten Zustand verlassen können.
Die waitUntil()-Methode muss ursprünglich innerhalb des Ereignis-Rückrufs aufgerufen werden, kann aber danach mehrfach aufgerufen werden, bis alle an sie übergebenen Promises erfüllt sind.
Syntax
waitUntil(promise)
Parameter
Rückgabewert
Keiner (undefined).
Beispiele
Verwendung von waitUntil() innerhalb eines install-Ereignisses eines Service-Workers:
addEventListener("install", (event) => {
const preCache = async () => {
const cache = await caches.open("static-v1");
return cache.addAll(["/", "/about/", "/static/styles.css"]);
};
event.waitUntil(preCache());
});
Spezifikationen
| Specification |
|---|
| Service Workers> # dom-extendableevent-waituntil> |
Browser-Kompatibilität
Loading...