如何清除Service Worker的缓存?

2023-11-25

所以,我有一个包含 Service Worker 的 HTML 页面, Service Worker 缓存 index.html 和我的 JS 文件。

问题是当我更改 JS 时,更改不会直接显示在客户端浏览器上。当然,在 chrome 开发工具中,我可以禁用缓存。但在 Chrome 手机中,我该怎么做呢?

我尝试访问网站设置并点击“CLEAR % RESET”按钮。 但它仍然加载旧页面/从缓存加载。 我尝试使用其他浏览器或 chrome 隐身模式,它会加载新页面。

然后,我尝试清除浏览数据(仅缓存)并且它起作用了。

我想这不应该是这样的吧?如果不清除 Chrome 浏览器缓存,我的用户将不知道页面是否已更新。


如果您知道缓存名称,您可以简单地调用caches.delete()从工作人员中您喜欢的任何位置:

caches.delete(/*name*/);

如果你想擦除所有缓存(而不是等待它们,假设这是一个后台任务),你只需要add this:

caches.keys().then(function(names) {
    for (let name of names)
        caches.delete(name);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何清除Service Worker的缓存? 的相关文章