Как установить время истечения срока действия кешей через javascript с помощью сервисного работника или объекта кеша - PullRequest
0 голосов
/ 01 октября 2018

Я могу удалить данные кэша, используя метод удаления.Но я хочу автоматически удалять данные кэша, используя время истечения.Например, он должен быть удален через 6 часов.

caches.delete(cacheName).then(function(boolean) {

// ваш кеш теперь удален});

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Перед отправкой кэшированного файла клиенту вы можете проверить, был ли файл извлечен, и если он слишком старый, извлеките новый:

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;
  })
})
0 голосов
/ 01 октября 2018

У нас нет встроенного метода в объекте кеша для удаления кеша через некоторое время, но мы можем использовать метод setTimeout (), который используется для выполнения функции, один раз, после ожидания указанного количества миллисекунд.Итак, установив время, вы можете вызвать этот метод удаления и сбросить данные.

https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker

Выше приведен документ Google для кэша.Надеюсь, что это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...