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

js
startMessages()

Parameter

Keine.

Rückgabewert

undefined.

Beispiele

js
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