- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
热门问题 How do I uninstall a Service Worker? 为使用 JavaScript 取消注册服务 worker 提供了一个很好的答案。如何让服务人员在取消注册时清除任何命名缓存?
来自 MDN unregister
,Service Worker 将在取消注册之前完成所有正在进行的操作。因此,听起来应该可以监听 uninstall
事件,但不存在这样的事件 as far as I can tell 。对于傻笑,我尝试将 self.addEventListener('uninstall', ...)
添加到服务人员,但正如预期的那样,它没有在取消注册时触发。我还尝试监听可能在取消注册时发送的任何 message
...没有骰子。
我也考虑看 service worker state ,但没有 installing
、installed
、activating
、activated
和redundant
显得相关。更不用说,看起来消息传递给服务 worker 是不可能的,所以我不确定我会如何处理来自服务 worker 外部的 uninstalling
状态。
伸手去拿吸管,虽然我看到了对 uninstalling flag 的引用,但我还没有看到它暴露在任何地方。有什么建议吗?
最佳答案
以下代码应取消注册所有服务 worker 并清除缓存存储 API 中的所有内容:
async function unregisterAndClearCaches() {
const registrations = await navigator.serviceWorker.getRegistrations();
const unregisterPromises = registrations.map(registration => registration.unregister());
const allCaches = await caches.keys();
const cacheDeletionPromises = allCaches.map(cache => caches.delete(cache));
await Promise.all([...unregisterPromises, ...cacheDeletionPromises]);
}
使用 Clear-Site-Data
header是在单个操作中“强制”清除所有内容(服务 worker 注册、缓存等)的另一种选择。
关于service-worker - 注销时如何清除服务人员缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47358643/
是否有用于手动测试的代码覆盖工具?比如我新写了30行代码,编译,然后运行,有什么办法可以快速验证这30行都运行了吗? 另外,后来,在我将代码 checkin 正式版本后,有什么方法可以验证测试部门在进
老实说,这是一个家庭作业问题,但我已经浪费了好几个小时,而且无法正确解决。它返回错误数量的结果或错误的数据: 我需要选择参与指导电影和/或在电影中表演的每个人以及他们所做的次数,如果至少 5 次。 有
我正在尝试测试 MacOS 的应用内购买。输入测试用户凭据后,App Store 提示:“当前收据无效或 ds 人员 ID 不匹配。”并且购买失败。 最佳答案 我尝试了很多方法来解决这个问题。 Get
我正在为 Jenkins 使用 ActiveDirectory 插件,因此用户必须使用他们的凭据登录到 Jenkins。然后用户在 Jenkins 中被称为 joe.doe,这很完美。 当同一个人 c
如何从 Infopath 人员/组选取器检索电子邮件地址?当我将人员/组选取器添加到 infopath 表单时,我只得到 3 个字段 DisplayName、AccountId、AccountType
在 Snow Leopard 中,可以在 iCal 事件中显示空闲/忙碌时间。我搜索了 CalStore.framework 的 header ,但找不到任何描述该字段的属性。如何检索日历事件的忙/闲
是否有人成功地从专门针对 SharePoint 2013 的新建或编辑表单中获取用户(个人或组)字段的值? 我已经尝试了通过搜索互联网找到的所有解决方案以及我自己能想到的所有解决方案,所有结果都为空白
所以我需要将一个 Twitter 帐户添加到 ABRecordRef 中。然而,最快的方法似乎是获取社交资料属性的多值引用,创建它的可变版本,查找它是否有 Twitter 条目,如果已经有,则创建
我正在尝试将使用 Tomcat(最初是 5.5,但可以与 7 一起使用)在 MyEclipse 中开发的应用程序部署到我们的演示服务器 (Sun Java Web Server 7)。不幸的是,所有设
我是一名优秀的程序员,十分优秀!