This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Note: This feature is available in Web Workers.
The PeriodicSyncManager interface of the Web Periodic Background Synchronization API provides a way to register tasks to be run in a service worker at periodic intervals with network connectivity. These tasks are referred to as periodic background sync requests. Access PeriodicSyncManager through the ServiceWorkerRegistration.periodicSync.
None.
PeriodicSyncManager.register() Experimental
Registers a periodic sync request with the browser with the specified tag and options. Returns a Promise that resolves when the registration completes.
Returns a Promise that resolves with a list of strings representing the tags that are currently registered for periodic syncing.
PeriodicSyncManager.unregister() Experimental
Unregisters the periodic sync request corresponding to the specified tag and returns a Promise that resolves when unregistration completes.
The following examples show how to use the interface.
The following asynchronous function registers a periodic background sync at a minimum interval of one day from a browsing context:
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!");
}
}
This code checks to see if a Periodic Background Sync task with a given tag is registered.
navigator.serviceWorker.ready.then((registration) => {
registration.periodicSync.getTags().then((tags) => {
if (tags.includes("get-latest-news")) skipDownloadingLatestNewsOnPageLoad();
});
});
The following code removes a Periodic Background Sync task to stop articles syncing in the background.
navigator.serviceWorker.ready.then((registration) => {
registration.periodicSync.unregister("get-latest-news");
});
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
PeriodicSyncManager |
80 | 80 | No | 67 | No | 80 | No | 57 | No | 13.0 | No | No |
getTags |
80 | 80 | No | 67 | No | 80 | No | 57 | No | 13.0 | No | No |
register |
80 | 80 | No | 67 | No | 80 | No | 57 | No | 13.0 | No | No |
unregister |
80 | 80 | No | 67 | No | 80 | No | 57 | No | 13.0 | No | No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager