Я могу удалить данные кэша, используя метод удаления.Но я хочу автоматически удалять данные кэша, используя время истечения.Например, он должен быть удален через 6 часов.
caches.delete(cacheName).then(function(boolean) {
// ваш кеш теперь удален});
Перед отправкой кэшированного файла клиенту вы можете проверить, был ли файл извлечен, и если он слишком старый, извлеките новый:
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; }) })
У нас нет встроенного метода в объекте кеша для удаления кеша через некоторое время, но мы можем использовать метод setTimeout (), который используется для выполнения функции, один раз, после ожидания указанного количества миллисекунд.Итак, установив время, вы можете вызвать этот метод удаления и сбросить данные.
https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker
Выше приведен документ Google для кэша.Надеюсь, что это поможет вам.