Service Worker- PeriodicSyncManager

The PeriodicSyncManager interface provides a way to register tasks to be run in a service worker at periodic intervals with network connectivity.


navigator.serviceWorker.register('service-worker.js');
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!');
  }
}

navigator.serviceWorker.register('service-worker.js');
navigator.serviceWorker.ready.then(registration => {
  registration.periodicSync.getTags().then(tags => {
    if (tags.includes('fetch-news'))
      skipDownloadingLatestNewsOnPageLoad();
  });
});

navigator.serviceWorker.ready.then(registration => {
  registration.periodicSync.unregister('fetch-news');
});

// service-worker.js
self.addEventListener('periodicsync', event => {
  if (event.tag == 'fetch-news') {
    event.waitUntil(fetchAndCacheLatestNews());
  }
});