javascript - 如何使用 Service Worker 或缓存对象通过 JavaScript 设置缓存过期时间

标签 javascript caching browser-cache service-worker cache-control

我可以使用删除方法删除缓存数据。 但我想使用过期时间自动删除缓存数据。例如,它应该在 6 小时内被删除。

caches.delete(cacheName).then(function(boolean) {
  // your cache is now deleted
});

最佳答案

在将缓存文件发送到客户端之前,您可以检查文件何时被获取,如果文件太旧,则获取新文件:

const url = request.url;
caches.open(cacheName).then(cache => {
  cache.match(url).then(response => {
    if(!response) {
      return fetch(url);
    }

    const date = new Date(response.headers.get('date'))
    // if cached file is older than 6 hours
    if(Date.now() > date.getTime() + 1000 * 60 * 60 * 6){
      return fetch(url);
    }

    // else return cached version
    return response;
  })
})

关于javascript - 如何使用 Service Worker 或缓存对象通过 JavaScript 设置缓存过期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52592370/

相关文章:

caching - 用于 hget 和 hset 命令的 Redis 基准测试

javascript - Backbone.js 解析未修改的响应

ASP.NET - 如何从数据库有效地创建动态用户特定菜单

javascript - 我应该将 javascript 框架与我的应用程序捆绑在一起还是使用公共(public) CDN?

node.js - 与 npm run 配合良好的静态构建的自动缓存清除?

javascript - 如何获取 block 中的元素?

javascript - 如何使用 ajax 将数据从 Flask 获取到我的模板?

javascript - 如何获取 React tsx 中给定元素的坐标

javascript - 保存输入表单后 ImageMap 颜色发生变化

javascript - 检查缓存的 JS 文件