title | slug | page-type | status | browser-compat | |
---|---|---|---|---|---|
PeriodicSyncEvent |
Web/API/PeriodicSyncEvent |
web-api-interface |
|
api.PeriodicSyncEvent |
{{APIRef("Periodic Background Sync")}}{{SeeCompatTable}}{{AvailableInWorkers("service")}}
The PeriodicSyncEvent
interface of the {{domxref('Web Periodic Background Synchronization API', '', '', 'nocode')}} provides a way to run tasks in the service worker with network connectivity.
An instance of this event is passed to the {{domxref('ServiceWorkerGlobalScope.periodicsync_event', 'periodicsync')}} handler. This happens periodically, at an interval greater than or equal to that set in the {{domxref('PeriodicSyncManager.register()')}} method. Other implementation-specific factors such as the user's engagement with the site decide the actual interval.
{{InheritanceDiagram}}
- {{domxref("PeriodicSyncEvent.PeriodicSyncEvent", "PeriodicSyncEvent()")}} {{Experimental_Inline}}
- : Creates a new
PeriodicSyncEvent
object. This constructor is not typically used. The browser creates these objects itself and provides them to {{domxref('ServiceWorkerGlobalScope.periodicsync_event', 'onperiodicsync')}} callback.
- : Creates a new
Inherits properties from its parent, {{domxref('ExtendableEvent')}}.
- {{domxref('PeriodicSyncEvent.tag')}} {{ReadOnlyInline}} {{Experimental_Inline}}
- : Returns the developer-defined identifier for this
PeriodicSyncEvent
. Multiple tags can be used by the web app to run different periodic tasks at different frequencies.
- : Returns the developer-defined identifier for this
Inherits methods from its parent, {{domxref('ExtendableEvent')}}.
The following example shows how to respond to a periodic sync event in the service worker.
self.addEventListener("periodicsync", (event) => {
if (event.tag === "get-latest-news") {
event.waitUntil(fetchAndCacheLatestNews());
}
});
fetchAndCacheLatestNews
is a developer defined function.
{{Specifications}}
{{Compat}}