@Kizzeon

Как единожды закешировать файл с данными вместо постоянного кеширования во время запроса к данным(PWA)?

У меня есть файл с данными по которым идёт поиск, но при каждом обращении к нему у меня он начинается наново кешироватся.
Вот код который постоянно кеширует этот файл:

self.addEventListener("fetch", function (event) {
    if (event.request.method !== "GET") return;
    event.respondWith(
      fetch(event.request)
        .then(function (response) {
          console.log("Add page to offline cache: " + response.url);
          event.waitUntil(updateCache(event.request, response.clone()));
          return response;
        })
        .catch(function (error) {
          console.log("Network request Failed. Serving content from cache: " + error);
          return fromCache(event.request);
        })
    );
  });
  
  function fromCache(request) {
    return caches.open(CACHE).then(function (cache) {
      return cache.match(request).then(function (matching) {
        if (!matching || matching.status === 404) {
          return Promise.reject("no-match");
        }
        return matching;
      });
    });
}


Как можно сделать так, что бы этот файл кешировался только единожды во время загрузки страницы?
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
AlexanderYudakov
@AlexanderYudakov
C#, 1С, Android, TypeScript
В вашем коде кэш используется, только если сеть недоступна.

Вот пример правильного кода из Google Developers, где сначала используется кэш, и только потом, если в кэше ничего нет, запрос отправляется в сеть:
https://developers.google.com/web/ilt/pwa/caching-...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы