如何在Firefox中清除服务工作者缓存?

如何在Firefox中清除服务工作者缓存?,firefox,browser-cache,service-worker,Firefox,Browser Cache,Service Worker,在Chrome中,可以从开发工具中清除服务工作者缓存 我们如何在Firefox中实现这一点 到目前为止,我已经尝试过: 要在about:serviceworkers中注销服务 清空about:preferences#privacy 使用Ctrl+F5重新加载页面 但它仍然存在…您可以在Firefox Web控制台中执行以下代码片段: caches.keys().then(function (cachesNames) { console.log("Delete " + document.d

在Chrome中,可以从开发工具中清除服务工作者缓存

我们如何在Firefox中实现这一点

到目前为止,我已经尝试过:

  • 要在
    about:serviceworkers中注销服务
  • 清空
    about:preferences#privacy
  • 使用
    Ctrl+F5重新加载页面

但它仍然存在…

您可以在Firefox Web控制台中执行以下代码片段:

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

在当前版本的Firefox中,无法使用Storage Inspector清除Service Worker缓存。请参阅关于当前可用的功能。您不能使用
about:preferences 35; privacy
或注销Service Worker,因为Service Worker缓存独立于浏览器HTTP缓存工作,并且仅由脚本管理。相关摘录自:

5.2了解缓存生存期 缓存实例不是浏览器HTTP缓存的一部分。缓存对象正是作者必须自己管理的对象。除非作者明确要求更新缓存对象,否则不会更新缓存对象。除非作者删除条目,否则缓存对象不会过期。缓存对象不会因为服务工作者脚本更新而消失。也就是说,缓存不会自动更新。必须手动管理更新。这意味着作者应按名称对其缓存进行版本设置,并确保仅使用可以安全操作的服务工作者版本的缓存


如上所述,现在不可能。但是删除缓存条目和缓存已经实现,应该很快就会推出()。例如,它已经在Firefox开发者版中提供。

在Firefox的地址栏中键入此项,然后注销所需的服务人员

about:debugging#workers

编辑:在较新版本中,
#worker
锚定不起作用。您必须向下滚动到
服务人员部分。

现在可以了,因为v52@Supersharp如何操作?从Firefox 75.0开始,您必须使用
about:preferences#privacy
屏幕输入并向下滚动到“服务人员”,现在将清除服务人员缓存。您可以使用
“管理数据…”
按钮清除特定的站点缓存,或者使用
“清除数据…”
按钮清除所有内容。要进行一点更新,
#workers
锚定现在似乎不起作用。我输入了
about:debug
并向下滚动