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('fetch-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
Specification | Status | Comment |
Web Periodic Background SynchronizationThe definition of 'PeriodicSyncManager' in that specification. | Working Draft | Initial definition. |
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Chrome
Full support 80 |
Edge
Full support 80 |
Firefox
No support No |
IE
No support No |
Opera
Full support 67 |
Safari
No support No |
WebView Android
Full support 80 |
Chrome Android
Full support 80 |
Firefox Android
No support No |
Opera Android
Full support 57 |
Safari iOS
No support No |
Samsung Internet Android
Full support 13.0 |
Chrome
Full support 80 |
Edge
Full support 80 |
Firefox
No support No |
IE
No support No |
Opera
Full support 67 |
Safari
No support No |
WebView Android
Full support 80 |
Chrome Android
Full support 80 |
Firefox Android
No support No |
Opera Android
Full support 57 |
Safari iOS
No support No |
Samsung Internet Android
Full support 13.0 | |
Chrome
Full support 80 |
Edge
Full support 80 |
Firefox
No support No |
IE
No support No |
Opera
Full support 67 |
Safari
No support No |
WebView Android
Full support 80 |
Chrome Android
Full support 80 |
Firefox Android
No support No |
Opera Android
Full support 57 |
Safari iOS
No support No |
Samsung Internet Android
Full support 13.0 | |
Chrome
Full support 80 |
Edge
Full support 80 |
Firefox
No support No |
IE
No support No |
Opera
Full support 67 |
Safari
No support No |
WebView Android
Full support 80 |
Chrome Android
Full support 80 |
Firefox Android
No support No |
Opera Android
Full support 57 |
Safari iOS
No support No |
Samsung Internet Android
Full support 13.0 |
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.'
- Experimental. Expect behavior to change in the future.
- Non-standard. Expect poor cross-browser support.'
- Non-standard. Expect poor cross-browser support.
See also
- Richer offline experiences with the Periodic Background Sync API
- A Periodic Background Sync demo app
PeriodicSyncManager by Mozilla Contributors is licensed under CC-BY-SA 2.5.