PeriodicSyncManager
Draft: This page is not complete.
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
.
Properties
None.
Methods
PeriodicSyncManager.register
-
Registers a periodic sync request with the browser with the specified tag and options. Returns a
Promise
that resolves when the registration completes. PeriodicSyncManager.getTags
-
Returns a
Promise
that resolves with a list ofstrings
representing the tags that are currently registered for periodic syncing. PeriodicSyncManager.unregister
-
Unregisters the periodic sync request corresponding to the specified tag and returns a
Promise
that resolves when unregistration completes.
Examples
The following examples show how to use the interface.
Requesting a Periodic Background Sync
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!'); } }
Verifying a Background Periodic Sync by Tag
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(); }); });
Removing a Periodic Background Sync Task
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'); });
Specifications
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
PeriodicSyncManager |
80 |
80 |
No |
No |
67 |
No |
80 |
80 |
No |
57 |
No |
13.0 |
getTags |
80 |
80 |
No |
No |
67 |
No |
80 |
80 |
No |
57 |
No |
13.0 |
register |
80 |
80 |
No |
No |
67 |
No |
80 |
80 |
No |
57 |
No |
13.0 |
unregister |
80 |
80 |
No |
No |
67 |
No |
80 |
80 |
No |
57 |
No |
13.0 |
See also
- Richer offline experiences with the Periodic Background Sync API
- A Periodic Background Sync demo app
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager