我能够使用delete方法删除缓存数据。 但是我想使用到期时间自动删除缓存数据。例如它应该在6小时内删除。
caches.delete(cacheName).then(function(boolean) {
//您的缓存现已删除 });
答案 0 :(得分:1)
缓存对象中没有内置方法可以在一段时间后删除缓存,但是可以使用setTimeout()方法,该方法用于在等待指定的毫秒数后执行一次函数。因此,通过设置时间,您可以调用此delete方法并刷新数据。
https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker
以上是缓存的Google文档。希望这会帮助你。
答案 1 :(得分:1)
在将缓存的文件发送到客户端之前,您可以检查何时获取文件,如果文件太旧,则获取新文件:
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;
})
})