【发布时间】:2017-10-23 04:19:33
【问题描述】:
Service Worker 可能会干扰刷新按钮(根据设计)。在桌面 Chrome 上,您可以按住 shift 并单击刷新按钮进行硬重新加载,忽略任何已安装的 ServiceWorker。
有没有办法强制重新加载而忽略 JavaScript 中的 SW?
(我想要这个,以便在 SW 开始出现异常行为时给移动用户一个按钮。手机没有 shift 键。)
【问题讨论】:
-
我会告诉你我尝试过的一件事并没有达到我想要的效果。
window.location.reload(true)(forcedRefresh参数)通常应该等同于 shift-refresh,但在我的测试中,location.reload(true)不会覆盖/忽略 SW;就软件而言,它与location.reload(false)相同。 (这是 Chrome 中的错误吗??) -
如果你想删除所有缓存,你可以使用
caches.deletedeveloper.mozilla.org/en-US/docs/Web/API/Service_Worker_API/… 你可以通过你的js代码(按钮点击处理程序)与服务进行通信,服务工作者消息处理程序可以删除缓存(或只有一些)。服务人员完成后,重新加载页面:craig-russell.co.uk/2016/01/29/…