在Chrome中,可以从开发工具中清除Service Worker缓存。
我们如何在Firefox中实现这一目标?
我到目前为止已尝试过:
about:serviceworkers
about:preferences#privacy
Ctrl + F5
但它还在那里......
答案 0 :(得分:19)
您可以在Firefox Web Console中执行以下代码段:
caches.keys().then(function (cachesNames) {
console.log("Delete " + document.defaultView.location.origin + " caches");
return Promise.all(cachesNames.map(function (cacheName) {
return caches.delete(cacheName).then(function () {
console.log("Cache with name " + cacheName + " is deleted");
});
}))
}).then(function () {
console.log("All " + document.defaultView.location.origin + " caches are deleted");
});
有关此代码段的详细信息,请检查MDN上的Cache Web API page。
您无法在当前版本的Firefox中使用Storage Inspector清除Service Worker缓存。有关当前可用的功能,请参阅Storage Inspection documentation。您无法使用about:preferences#privacy
或取消注册Service Worker,因为Service Worker缓存独立于浏览器HTTP缓存而只能由您的脚本管理。相关摘录自Service Worker specification:
5.2了解缓存生存期 缓存实例不是浏览器的HTTP缓存的一部分。 Cache对象正是作者必须自己管理的对象。除非作者明确要求,否则不会更新Cache对象。除非作者删除条目,否则Cache对象不会过期。 Cache对象不会因为更新服务工作者脚本而消失。也就是说,缓存不会自动更新。必须手动管理更新。这意味着作者应该按名称对其缓存进行版本化,并确保仅使用可以安全操作的服务工作者版本的缓存。
答案 1 :(得分:16)
在Firefox的地址栏中键入此内容,然后取消注册所需的服务人员。
about:debugging#workers
答案 2 :(得分:2)
如上所述,现在不可能。但是已经实现了删除缓存条目和缓存,并应该推出(https://bugzilla.mozilla.org/show_bug.cgi?id=1304297)。例如,它已经在Firefox Developer Edition中提供。