如何在没有浏览器缓存的情况下使用缓存存储?

时间:2021-03-01 16:53:21

标签: javascript caching browser-cache cachestorage

我使用 Cache storage 在客户端存储一些文件。这些文件名存储在 cached 数组中。当我在服务器上更新这些文件时,我使用 clear HTTP 参数来清除缓存存储并从服务器重新加载它。不过浏览器缓存也会起作用,所以调用clear命令后,还需要按Ctrl+F5绕过。然后它起作用了。但是,在移动浏览器上很难按 Ctrl+F5。到目前为止,这是我的代码:

if('serviceWorker' in navigator) {
    if(location.href.indexOf("?clear")!=-1) {
        console.log("clearing");
        caches.open('store').then(cache => (
          cache.keys().then(keys =>
            keys.forEach(request =>
              cache.delete(request)
            )
          ),
          cache.addAll(cached)
        ));
    }
    navigator.serviceWorker
      .register('/sw.js')
      .then(_ => console.log('Service Worker Registered'));
}

我知道有 HTTP 标头 Clear-Site-Data: cacheCache-Control: no-store,但我不确定哪个标头会影响我应该使用哪个缓存以及 many settings 的哪个组合。我想要一个神奇的按钮,以便在 clear 命令上可靠地从服务器重新加载所有资源,并在其他情况下使用缓存存储(即使网络可离线访问)。

0 个答案:

没有答案
相关问题