如何清除服务工作者的缓存?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (124)

所以,我有一个服务工作者的HTML页面,服务工作者缓存index.html和我的JS文件。

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

提问于
用户回答回答于

使用它删除过时的缓存:

self.addEventListener('activate', function(event) {
  event.waitUntil(
    caches.keys().then(function(cacheNames) {
      return Promise.all(
        cacheNames.filter(function(cacheName) {
          // Return true if you want to remove this cache,
          // but remember that caches are shared across
          // the whole origin
        }).map(function(cacheName) {
          return caches.delete(cacheName);
        })
      );
    })
  );
});
用户回答回答于

如果知道缓存名称,只需调用caches.delete()

caches.delete(/*name*/);

如果你想清除所有的缓存(而不是等待它们,比如说这是一个后台任务),你只需要加上这个:

caches.keys().then(function(names) {
    for (let name of names)
        caches.delete(name);
});

所属标签

可能回答问题的人

  • 人生的旅途

    10 粉丝484 提问6 回答
  • 不吃貓的鱼oo

    5 粉丝466 提问6 回答
  • 富有想象力的人

    4 粉丝0 提问5 回答
  • Richel

    8 粉丝0 提问5 回答

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励