PeriodicSyncManager
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
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. -
Gibt ein
Promise
zurück, das mit einer Liste vonstrings
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:
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.
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.
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