Web/API/PeriodicSyncManager

From Get docs

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 of strings 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

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet

PeriodicSyncManager

Experimental'Non-standard'

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

getTags

Experimental'Non-standard'

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

register

Experimental'Non-standard'

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

unregister

Experimental'Non-standard'

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