ServiceWorkerContainer: startMessages() Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die startMessages()
-Methode des ServiceWorkerContainer
-Interfaces startet explizit den Fluss von Nachrichten, die von einem Service Worker an die von ihm kontrollierten Seiten gesendet werden (z. B. über Client.postMessage()
). Dies kann verwendet werden, um auf gesendete Nachrichten früher zu reagieren, noch bevor der Inhalt der Seite vollständig geladen ist.
Erklärung
Standardmäßig werden alle Nachrichten, die von einem Seite kontrollierenden Service Worker an die Seite gesendet werden (verwendet Client.postMessage()
), während des Ladens der Seite in eine Warteschlange gestellt und werden ausgeliefert, nachdem das HTML-Dokument der Seite geladen und geparst worden ist (d.h. nachdem das DOMContentLoaded
-Ereignis ausgelöst wird). Es ist möglich, diese Nachrichten früher zuzustellen, indem ServiceWorkerContainer.startMessages()
aufgerufen wird, zum Beispiel wenn Sie einen Nachrichtenhandler mit EventTarget.addEventListener()
aufgerufen haben, bevor die Seite vollständig geladen ist, aber die Nachrichten sofort verarbeiten möchten.
Hinweis:
Die Nachrichten beginnen automatisch gesendet zu werden, 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 |