Mar*_*lin 132 html5 google-chrome service-worker
/serviceworker.js从我的根目录中删除后,Chrome仍然运行我从我的webroot中删除的服务工作者.如何从我的网站和Chrome中卸载服务工作者,以便我可以重新登录我的网站?
我已将问题跟踪到Service Work的缓存机制,我只是想暂时删除,直到我有时间调试它.我正在使用的登录脚本会重定向到Google的服务器,以便他们登录自己的Google帐户.但是我从login.php页面得到的只是一条ERR_FAILED消息.
Dan*_*err 275
您可以这样以编程方式删除服务工作者:
navigator.serviceWorker.getRegistrations().then(function(registrations) {
for(let registration of registrations) {
registration.unregister()
} })
Run Code Online (Sandbox Code Playgroud)
您还可以在Chrome Devtools的"应用程序"选项卡下删除服务工作者.
k00*_*00k 94
您还可以转到URL:chrome:// serviceworker -internals /并从那里取消注册服务工作者.
Sak*_*pal 30
您可以通过Chrome开发者工具以及编程方式执行此操作.
通过键入查找所有正在运行的实例或服务工作
铬:// serviceworker,内部/
在新选项卡中,然后选择要取消注册的serviceworker.
打开开发人员工具(F12)并选择应用程序.然后是
选择清除存储 - >取消注册服务工作者
要么
选择服务工作者 - >选择重新加载时更新
编程方式
if(window.navigator && navigator.serviceWorker) {
navigator.serviceWorker.getRegistrations()
.then(function(registrations) {
for(let registration of registrations) {
registration.unregister();
}
});
}Run Code Online (Sandbox Code Playgroud)
Asi*_*K T 22
在Google Chrome中,您可以转到开发人员工具(F12) - >应用程序 - >服务工作者,并从该列表中取消注册该特定域的服务工作者.
这种方法在站点的开发模式中是有效的,并且大多数它们运行在localhost您可能需要的其他项目的开发上.
除了已经给出的正确答案之外,如果您还想删除软件缓存,您可以调用以下方法:
if ('caches' in window) {
caches.keys()
.then(function(keyList) {
return Promise.all(keyList.map(function(key) {
return caches.delete(key);
}));
})
}
Run Code Online (Sandbox Code Playgroud)
更多内容参见本文(段落:“取消注册 Service Worker”)
另一种可能性是通过浏览器访问“缓存存储”部分并单击“清除站点数据”按钮:
仅供参考,如果您使用的是 MacOS Safari浏览器,有一种方法可以强制取消注册 Service Worker(Safari 12.1 的步骤和图像):
注意:除了 Service Worker 之外,这还将清除此域的所有缓存、cookie 和数据库。
您应该在设备中检测到两个API:getRegistrations和getRegistration。服务工作者并非在所有平台上都有一套独特的API。例如,某些浏览器只有一个navigator.serviceWorker.getRegistration,没有navigator.serviceWorker.getRegistrations。因此,您应该同时考虑两者。
| 归档时间: |
|
| 查看次数: |
64212 次 |
| 最近记录: |