我可以使用删除方法删除缓存数据。 但我想使用过期时间自动删除缓存数据。例如,它应该在 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/