如何清除 Firefox 中的 Service Worker 缓存?

Posted

技术标签:

【中文标题】如何清除 Firefox 中的 Service Worker 缓存?【英文标题】:How to clear a Service Worker cache in Firefox? 【发布时间】:2017-05-28 22:50:53 【问题描述】:

在 Chrome 中,可以从开发工具中清除 Service Worker 缓存。

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

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

取消注册about:serviceworkers中的服务 清空about:preferences#privacy下的缓存 用Ctrl + F5重新加载页面

但它仍然存在......

【问题讨论】:

使用about:preferences#privacy 屏幕现在将清除服务工作者缓存。您可以使用"Manage Data..." 按钮清除特定站点缓存,或使用"Clear Data..." 按钮清除所有内容。 【参考方案1】:

您可以在 Firefox Web Console 中执行以下代码 sn-p:

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");
);

有关此代码 sn-p 的更多信息,请查看 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 了解缓存生命周期 Cache 实例不是浏览器 HTTP 缓存的一部分。 Cache 对象正是作者必须自己管理的对象。除非作者明确要求,否则缓存对象不会更新。除非作者删除条目,否则缓存对象不会过期。缓存对象不会仅仅因为服务工作者脚本被更新而消失。也就是说,缓存不会自动更新。必须手动管理更新。这意味着作者应该按名称对缓存进行版本控制,并确保仅使用可以安全操作的服务工作者版本的缓存。

【讨论】:

【参考方案2】:

如上所述,目前不可能。但是删除缓存条目和缓存已经实现,应该很快就会推出(https://bugzilla.mozilla.org/show_bug.cgi?id=1304297)。例如,它已经在 Firefox 开发者版中可用。

【讨论】:

现在可以从 v52 开始 @Supersharp 怎么样? 从 Firefox 75.0 开始,您必须输入 about:debugging 并向下滚动到“Service Workers”【参考方案3】:

在 Firefox 的地址栏中输入这个并注销你想要的服务工作者。

about:debugging#workers

编辑:在较新的版本中,#worker 锚不起作用。您必须向下滚动到 Service Workers 部分。

【讨论】:

提供一些更新,#workers 锚现在似乎不起作用。我输入了about:debugging 并向下滚动

以上是关于如何清除 Firefox 中的 Service Worker 缓存?的主要内容,如果未能解决你的问题,请参考以下文章

如何清除 SSIS 警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED?

如何设置firefox缓存自动清理

你如何清除javascript中的焦点?

如何清除tomcat中的PermGen空间错误

python Tkinter 如何清除Text中的文本

如何清除Eclipse中的SVN账号信息 | SVN 如何切换用户