ServiceWorkerContainer: startMessages()-Methode
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die startMessages()
-Methode des ServiceWorkerContainer
-Interfaces startet explizit den Fluss von Nachrichten, die von einem Service Worker an Seiten unter seiner Kontrolle gesendet werden (z.B. versendet über Client.postMessage()
). Dies kann genutzt werden, um auf gesendete Nachrichten früher zu reagieren, sogar bevor die Inhalte der Seite vollständig geladen sind.
Erläuterung
Standardmäßig werden alle Nachrichten, die von einem Service Worker einer Seite an die Seite gesendet werden (unter Verwendung von Client.postMessage()
), in eine Warteschlange gestellt, während die Seite lädt, und werden versendet, sobald das HTML-Dokument der Seite geladen und geparst ist (d.h. nachdem das DOMContentLoaded
-Ereignis ausgelöst wurde). Es ist möglich, das Versenden dieser Nachrichten früher zu starten, indem ServiceWorkerContainer.startMessages()
aufgerufen wird, zum Beispiel, wenn Sie einen Nachrichten-Handler mit EventTarget.addEventListener()
aufgerufen haben, bevor die Seite vollständig geladen ist, aber sofort mit der Verarbeitung der Nachrichten beginnen möchten.
Hinweis: Die Nachrichten werden automatisch gesendet, wenn der Handler direkt mit onmessage
gesetzt wird. In diesem Fall benötigen Sie startMessages()
nicht.
Syntax
startMessages()
Parameter
Keine.
Rückgabewert
undefined
.
Beispiele
if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("/sw.js").then(() => {
console.log("Service Worker Registered");
});
}
// …
navigator.serviceWorker.addEventListener("message", (e) => {
// …
});
navigator.serviceWorker.startMessages();
Spezifikationen
Specification |
---|
Service Workers # navigator-service-worker-startMessages |
Browser-Kompatibilität
BCD tables only load in the browser