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 Background Synchronization API ermöglicht es einer Webanwendung, Aufgaben zu verschieben, sodass diese in einem Service Worker ausgeführt werden können, sobald der Benutzer eine stabile Netzwerkverbindung hat.
Konzepte und NutzungDie Background Synchronization API erlaubt es Webanwendungen, die Serversynchronisationsarbeit an ihren Service Worker zu übertragen, um sie zu einem späteren Zeitpunkt auszuführen, wenn das Gerät offline ist. Anwendungsfälle könnten das Versenden von Anfragen im Hintergrund umfassen, falls diese nicht gesendet werden konnten, während die Anwendung benutzt wurde.
Zum Beispiel könnte eine E-Mail-Client-Anwendung es ihren Benutzern ermöglichen, Nachrichten zu verfassen und zu senden, auch wenn das Gerät keine Netzwerkverbindung hat. Das Frontend der Anwendung registriert einfach eine Synchronisierungsanfrage, und der Service Worker wird benachrichtigt, wenn das Netzwerk wieder verfügbar ist und führt die Synchronisierung durch.
Das SyncManager
-Interface ist über ServiceWorkerRegistration.sync
verfügbar. Ein einzigartiger Tag-Bezeichner wird gesetzt, um das Synchronisierungsereignis zu "benennen", auf das dann im ServiceWorker
-Skript gehört werden kann. Sobald das Ereignis empfangen wird, können Sie jede verfügbare Funktionalität ausführen, wie zum Beispiel das Senden von Anfragen an den Server.
Da diese API auf Service Worker angewiesen ist, ist die durch diese API bereitgestellte Funktionalität nur in einem sicheren Kontext verfügbar.
SchnittstellenSyncManager
Experimentell
Registriert Aufgaben, die zu einem späteren Zeitpunkt mit Netzwerkanbindung in einem Service Worker ausgeführt werden sollen. Diese Aufgaben werden als Hintergrundsynchronisierungsanfragen bezeichnet.
SyncEvent
Experimentell
Stellt ein Synchronisierungsereignis dar, das an den globalen Bereich eines ServiceWorker
gesendet wird. Es bietet eine Möglichkeit, Aufgaben im Service Worker auszuführen, sobald das Gerät eine Netzwerkverbindung hat.
Die folgenden Ergänzungen zur Service Worker API bieten einen Einstiegspunkt für das Einrichten von Hintergrundsynchronisierungen.
ServiceWorkerRegistration.sync
Schreibgeschützt
Gibt eine Referenz auf die SyncManager
-Schnittstelle zurück, um Aufgaben zu registrieren, die ausgeführt werden, sobald das Gerät eine Netzwerkverbindung hat.
sync
Ereignis
Ein Ereignis-Handler, der immer dann ausgelöst wird, wenn ein sync
-Ereignis auftritt. Dies geschieht, sobald das Netzwerk verfügbar wird.
Die folgenden Beispiele zeigen, wie die Schnittstelle verwendet wird.
Anfordern einer HintergrundsynchronisierungDie folgende asynchrone Funktion registriert eine Hintergrundsynchronisierung aus einem Browsing-Kontext:
async function syncMessagesLater() {
const registration = await navigator.serviceWorker.ready;
try {
await registration.sync.register("sync-messages");
} catch {
console.log("Background Sync could not be registered!");
}
}
Ãberprüfen einer Hintergrundsynchronisierung nach Tag
Dieser Code überprüft, ob eine Hintergrundsynchronisierungsaufgabe mit einem bestimmten Tag registriert ist.
navigator.serviceWorker.ready.then((registration) => {
registration.sync.getTags().then((tags) => {
if (tags.includes("sync-messages")) {
console.log("Messages sync already requested");
}
});
});
Lauschen auf eine Hintergrundsynchronisierung innerhalb eines Service Workers
Das folgende Beispiel zeigt, wie auf ein Hintergrundsynchronisierungsereignis im Service Worker reagiert werden kann.
self.addEventListener("sync", (event) => {
if (event.tag === "sync-messages") {
event.waitUntil(sendOutboxMessages());
}
});
Spezifikationen Browser-Kompatibilität api.SyncManager api.ServiceWorkerGlobalScope.sync_event Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4