ServiceWorkerRegistration

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.

Das ServiceWorkerRegistration-Interface der Service Worker API repräsentiert die Registrierung eines Service Workers. Sie registrieren einen Service Worker, um eine oder mehrere Seiten zu kontrollieren, die denselben Ursprung teilen.

Die Lebensdauer einer Service Worker-Registrierung geht über die der ServiceWorkerRegistration-Objekte hinaus, die sie innerhalb der Lebensdauer ihrer entsprechenden Service Worker-Clients repräsentieren. Der Browser führt eine persistente Liste aktiver ServiceWorkerRegistration-Objekte.

EventTarget ServiceWorkerRegistration

Instanzeigenschaften

Erbt auch Eigenschaften von der übergeordneten Schnittstelle, EventTarget.

ServiceWorkerRegistration.active Schreibgeschützt

Gibt einen Service Worker zurück, dessen Zustand activating oder activated ist. Dies wird zunächst auf null gesetzt. Ein aktiver Worker wird einen Client kontrollieren, wenn die URL des Clients innerhalb des Bereichs der Registrierung liegt (die scope-Option wird gesetzt, wenn ServiceWorkerContainer.register zuerst aufgerufen wird).

ServiceWorkerRegistration.backgroundFetch Schreibgeschützt Experimentell

Gibt eine Referenz auf ein BackgroundFetchManager-Objekt zurück, welches Hintergrundabrufoperationen verwaltet.

ServiceWorkerRegistration.cookies Schreibgeschützt Experimentell

Gibt eine Referenz auf die CookieStoreManager-Schnittstelle zurück, die das Abonnieren und Abbestellen von Cookie-Änderungsereignissen ermöglicht.

ServiceWorkerRegistration.index Schreibgeschützt Experimentell

Gibt eine Referenz auf die ContentIndex-Schnittstelle zurück, zur Verwaltung indizierter Inhalte für die Offline-Ansicht.

ServiceWorkerRegistration.installing Schreibgeschützt

Gibt einen Service Worker zurück, dessen Zustand installing ist. Dies wird zunächst auf null gesetzt.

ServiceWorkerRegistration.navigationPreload Schreibgeschützt

Gibt die Instanz des NavigationPreloadManager zurück, die mit der aktuellen Service Worker-Registrierung verbunden ist.

ServiceWorkerRegistration.paymentManager Schreibgeschützt Experimentell

Gibt eine Instanz des Zahlungsanwendungs-PaymentManager zurück, die verwendet wird, um verschiedene Funktionalitäten von Zahlungsanwendungen zu verwalten.

ServiceWorkerRegistration.periodicSync Schreibgeschützt Experimentell

Gibt eine Referenz auf die PeriodicSyncManager-Schnittstelle zurück, welche die Registrierung von Aufgaben ermöglicht, die in bestimmten Intervallen ausgeführt werden sollen.

ServiceWorkerRegistration.pushManager Schreibgeschützt

Gibt eine Referenz auf die PushManager-Schnittstelle zurück, um Push-Abonnements zu verwalten, einschließlich Abonnieren, Abrufen eines aktiven Abonnements und Zugriff auf den Push-Berechtigungsstatus.

ServiceWorkerRegistration.scope Schreibgeschützt

Gibt einen String zurück, der eine URL repräsentiert, die den Registrierungsbereich eines Service Workers definiert; das heißt, der Bereich von URLs, die der Service Worker kontrollieren kann.

ServiceWorkerRegistration.sync Schreibgeschützt

Gibt eine Referenz auf die SyncManager-Schnittstelle zurück, welche die Verwaltung von Hintergrundsynchronisationsprozessen ermöglicht.

ServiceWorkerRegistration.updateViaCache Schreibgeschützt

Gibt den Wert der Einstellung zurück, der bestimmt, unter welchen Umständen der Browser den HTTP-Cache konsultiert, wenn er versucht, den Service Worker oder irgendein Skript zu aktualisieren, das über importScripts() importiert wird. Es kann einen der folgenden Werte annehmen: imports, all oder none.

ServiceWorkerRegistration.waiting Schreibgeschützt

Gibt einen Service Worker zurück, dessen Zustand installed ist. Dies wird zunächst auf null gesetzt.

Instanzmethoden

Erbt auch Methoden von der übergeordneten Schnittstelle, EventTarget.

ServiceWorkerRegistration.getNotifications()

Gibt eine Liste der Benachrichtigungen in der Reihenfolge zurück, in der sie vom aktuellen Ursprung über die aktuelle Service Worker-Registrierung erstellt wurden.

ServiceWorkerRegistration.showNotification()

Zeigt die Benachrichtigung mit dem gewünschten Titel an.

ServiceWorkerRegistration.unregister()

Hebt die Registrierung des Service Workers auf und gibt ein Promise zurück. Der Service Worker wird alle laufenden Operationen abschließen, bevor er abgemeldet wird.

ServiceWorkerRegistration.update()

Prüft den Server auf eine aktualisierte Version des Service Workers, ohne Caches zu konsultieren.

Ereignisse

updatefound

Wird jedes Mal ausgelöst, wenn die ServiceWorkerRegistration.installing-Eigenschaft einen neuen Service Worker erhält.

Beispiele

In diesem Beispiel überprüft der Code zuerst, ob der Browser Service Workers unterstützt und registriert, falls ja, einen. Dann fügt er einen updatefound-Listener hinzu, in dem er die Service Worker-Registrierung verwendet, um weitere Änderungen am Zustand des Service Workers zu überwachen. Wenn sich der Service Worker seit der letzten Registrierung nicht geändert hat, wird das updatefound-Ereignis nicht ausgelöst.

js
if ("serviceWorker" in navigator) {
  navigator.serviceWorker
    .register("/sw.js")
    .then((registration) => {
      registration.addEventListener("updatefound", () => {
        // If updatefound is fired, it means that there's
        // a new service worker being installed.
        const installingWorker = registration.installing;
        console.log(
          "A new service worker is being installed:",
          installingWorker,
        );

        // You can listen for changes to the installing service worker's
        // state via installingWorker.onstatechange
      });
    })
    .catch((error) => {
      console.error(`Service worker registration failed: ${error}`);
    });
} else {
  console.error("Service workers are not supported.");
}

Spezifikationen

Specification
Service Workers
# serviceworkerregistration-interface
Push API
# extensions-to-the-serviceworkerregistration-interface

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch