Деинсталлируйте / отмените регистрацию работника службы при обновлении страницы без необходимости перезапускать браузер - PullRequest
0 голосов
/ 12 июля 2019

Итак, этот код удаляет всех работников сервиса.

Как мне удалить работника сервиса?

navigator.serviceWorker.getRegistrations().then(function(registrations) {
 for(let registration of registrations) {
  registration.unregister()
} })

Тогда у меня есть этот код, который успешно отменяет регистрацию сервисаРаботник только для текущей области.

function pwaUninstallServiceWorker() {
  return self.registration.unregister()
  .then(function(success) {
    if (success) {
      // Delete all Caches that belong to the PWA module.
      caches.keys().then(function(names) {
        for (let name of names) {
          console.debug('cache name: ', name);
          if (name.indexOf(CACHE_PREFIX) !== -1) {
            console.debug('PWA: Deleting cache with name ', name);
            caches.delete(name);
          }
        }

     console.debug('Service Worker has unregistered itself and destroyed old caches');
      });
    }
    else {
      console.error('Service Worker could not unregister itself. It might be necessary to manually delete this Service Worker using browser devtools.');
    }
  })
  .catch(function(error) {
    console.error('PWA: Phone-home - ', error);
  });
}

Можно ли каким-либо образом запустить код, чтобы он удалял / отменял регистрацию работника службы для текущей области только тогда, когда он закрывается за пределами сайта / области (все вкладки)связанных с сайтом), без необходимости полного перезапуска браузера?

...