files/en-us/web/api/periodicsyncevent/index.md
{{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}}
PeriodicSyncEvent object. This constructor is not typically used. The browser creates these objects itself and provides them to {{domxref('ServiceWorkerGlobalScope.periodicsync_event', 'onperiodicsync')}} callback.Inherits properties from its parent, {{domxref('ExtendableEvent')}}.
PeriodicSyncEvent. Multiple tags can be used by the web app to run different periodic tasks at different frequencies.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}}