PeriodicSyncManager

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Das PeriodicSyncManager-Interface der Web Periodic Background Synchronization API bietet eine Möglichkeit, Aufgaben zu registrieren, die in einem Service Worker in regelmäßigen Abständen mit Netzwerkverbindung ausgeführt werden sollen. Diese Aufgaben werden als periodische Hintergrund-Synchronisierungsanfragen bezeichnet. Auf PeriodicSyncManager kann über ServiceWorkerRegistration.periodicSync zugegriffen werden.

Instanz-Eigenschaften

Keine.

Instanz-Methoden

PeriodicSyncManager.register() Experimentell

Registriert eine periodische Synchronisierungsanfrage mit dem Browser mit dem angegebenen Tag und Optionen. Gibt ein Promise zurück, das aufgelöst wird, wenn die Registrierung abgeschlossen ist.

PeriodicSyncManager.getTags() Experimentell

Gibt ein Promise zurück, das mit einer Liste von strings aufgelöst wird, die die Tags darstellen, die derzeit für die periodische Synchronisierung registriert sind.

PeriodicSyncManager.unregister() Experimentell

Hebt die Registrierung der periodischen Synchronisierungsanfrage auf, die dem angegebenen Tag entspricht, und gibt ein Promise zurück, das aufgelöst wird, wenn die Deregistrierung abgeschlossen ist.

Beispiele

Die folgenden Beispiele zeigen, wie das Interface genutzt wird.

Anfordern einer periodischen Hintergrund-Synchronisierung

Die folgende asynchrone Funktion registriert eine periodische Hintergrund-Synchronisierung mit einem Mindestintervall von einem Tag aus einem Browsing-Kontext:

js
async function registerPeriodicNewsCheck() {
  const registration = await navigator.serviceWorker.ready;
  try {
    await registration.periodicSync.register("get-latest-news", {
      minInterval: 24 * 60 * 60 * 1000,
    });
  } catch {
    console.log("Periodic Sync could not be registered!");
  }
}

Verifizierung einer periodischen Hintergrund-Synchronisierung nach Tag

Dieser Code prüft, ob eine periodische Hintergrund-Synchronisierungsaufgabe mit einem bestimmten Tag registriert ist.

js
navigator.serviceWorker.ready.then((registration) => {
  registration.periodicSync.getTags().then((tags) => {
    if (tags.includes("get-latest-news")) skipDownloadingLatestNewsOnPageLoad();
  });
});

Entfernen einer periodischen Hintergrund-Synchronisierungsaufgabe

Der folgende Code entfernt eine periodische Hintergrund-Synchronisierungsaufgabe, um das Synchronisieren von Artikeln im Hintergrund zu stoppen.

js
navigator.serviceWorker.ready.then((registration) => {
  registration.periodicSync.unregister("get-latest-news");
});

Spezifikationen

Specification
Web Periodic Background Synchronization
# periodicsyncmanager-interface

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch