Jak odinstalować pracownika serwisu?

Po usunięciu /serviceworker.js z mojego katalogu głównego Chrome nadal uruchamia pracownika serwisu, który usunąłem z mojego webroota. Jak odinstalować Service worker z mojej witryny i Chrome, aby móc zalogować się z powrotem do mojej witryny?

Wyśledziłem problem do mechanizmu Cache Service Work I chcę go usunąć, dopóki nie będę miał czasu na debugowanie. Skrypt logowania, którego używam, przekierowuje na serwery Google, aby mogli zalogować się na swoje konto Google. Ale wszystko co dostaję z loginu.php strona jest ERR_FAILED wiadomością.

Author: piperchester, 2015-11-14

5 answers

Możesz programowo usunąć pracowników serwisu w następujący sposób:

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

Docs: getRegistrations, unregister

W Chrome Devtools można również usunąć pracowników serwisu na karcie Application.

 183
Author: Daniel Herr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-20 17:17:22

Możesz również przejść do adresu URL: chrome: / / serviceworker-internals / i stamtąd wyrejestrować serviceworker.

 69
Author: k00k,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-28 08:47:21

W Google Chrome możesz przejść do Developer tools (F12) -> Application -> Service workeri wyrejestrować pracowników serwisu z listy dla danej domeny.

Zrzut ekranu

Ta metoda jest skuteczna w trybie rozwoju witryny i głównie działają na localhost, który może być potrzebny do rozwoju innego projektu.

 17
Author: Asim K T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-28 08:45:49

Możesz to zrobić za pomocą Chrome Developer Tool oraz programowo.

  1. Znajdź wszystkie uruchomione instancje lub service workera wpisując

    Chrome: / / serviceworker-internals /

    W nowej karcie, a następnie wybierz serviceworker, którego chcesz wyrejestrować.

  2. Otwórz Narzędzia programistyczne (F12) i wybierz aplikację. Wtedy Albo

    Wybierz Clear Storage - > Unregister service worker

    Lub

    Wybierz service Workers - > wybierz Update on Reload

  3. Programowo

if(window.navigator && navigator.serviceWorker) {
  navigator.serviceWorker.getRegistrations()
  .then(function(registrations) {
    for(let registration of registrations) {
      registration.unregister();
    }
  });
}
 12
Author: Sakshi Nagpal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-27 16:11:17

Powinieneś wykryć dwa API w swoich urządzeniach: getRegistrations i getRegistration . Service-worker nie ma unikalnego zestawu interfejsów API na wszystkich platformach. Na przykład, niektóre przeglądarki mają tylko navigator.serviceWorker.getRegistration, no navigator.serviceWorker.getRegistrations. Więc powinieneś rozważyć jedno i drugie.

 1
Author: GuoX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-15 16:39:38