从根目录删除/serviceworker.js后,Chrome仍然运行我从webroot中删除的serviceworker。我如何从我的网站和Chrome卸载服务工作者,以便我可以登录回我的网站?

我已经将问题追溯到Service Work的缓存机制,现在我只想删除它,直到有时间调试它。我使用的登录脚本重定向到谷歌的服务器,让他们登录到他们的谷歌帐户。但是我从login.php页面得到的只是一条ERR_FAILED消息。


当前回答

如果您想在浏览器中注销所有已注册的service worker, 你可以通过打开前任来做到。

铬:Chrome: / / serviceworker-internals / 勇敢勇敢:/ / serviceworker-internals /

打开DevTools >控制台,粘贴如下:

$$('.unregister').forEach(b => b.click())

其他回答

你可以通过Chrome开发工具以及编程来做到这一点。

通过键入查找所有正在运行的实例或service worker chrome: / / serviceworker-internals / 在一个新的选项卡中,然后选择要注销的serviceworker。 打开开发人员工具(F12)并选择应用程序。然后要么 选择“Clear Storage”->取消注册service worker 或 选择Service Workers ->选择“重新加载时更新” 编程

如果窗口。navigator && navigator. serviceworker) { navigator.serviceWorker.getRegistrations () 不要犹豫(函数(注册){ 为(让登记注册){ registration.unregister (); } }); }

典型的JavaScript循环与所有东西兼容:

navigator.serviceWorker.getRegistrations().then(function(registrations) {
    var registrationslength = registrations.length;
    for (var i = 0; i < registrationslength; i++) {
        registrations[i].unregister();
    }
})

如果您想在浏览器中注销所有已注册的service worker, 你可以通过打开前任来做到。

铬:Chrome: / / serviceworker-internals / 勇敢勇敢:/ / serviceworker-internals /

打开DevTools >控制台,粘贴如下:

$$('.unregister').forEach(b => b.click())

它也可以在Chrome通过应用程序选项卡:

安全卸载Service Worker

if ('serviceWorker' in navigator) {
      navigator.serviceWorker.getRegistrations().then(function (registrations) {
        for (const registration of registrations) {
          // unregister service worker
          console.log('serviceWorker unregistered');
          registration.unregister();
        }
      });
    }