Service Worker сначала обслуживает URL из кэша и обновляет при необходимости - PullRequest
0 голосов
/ 31 мая 2018

Сначала я всегда вижу кэш со статическими ресурсами для создания PWA в автономном режиме.Но возможно ли кешировать URL-адрес и обслуживать его из кеша первым при следующем рендеринге и обновлять кеш при необходимости?

На данный момент в моем PWA я копирую все просмотренные URL-адреса, но не могу обслуживать кешпервый: /

Событие моего извлечения:

self.addEventListener("fetch", event => {
  const updateCache = request => {
    return caches
      .open(CACHE_NAME)
      .then(cache => {
        return fetch(request)
          .then(response => {
            console.log(`[PWA] add page to offline ${response.url}`);
            return cache.put(request, response);
          })
          .catch(error => console.log(error));
      })
      .catch(error => console.log(error));
  };

  event.waitUntil(updateCache(event.request));

  event.respondWith(
    fetch(event.request).catch(error => {
      console.log(
        `[PWA] Network request Failed. Serving content from cache: ${error}`
      );

      // Check to see if you have it in the cache
      // Return response
      // If not in the cache, then return error page
      return caches
        .open(CACHE_NAME)
        .then(cache => {
          return cache.match(event.request).then(matching => {
            const report =
              !matching || matching.status == 404
                ? Promise.reject("no-match")
                : matching;
            return report;
          });
    })
    .catch(error => console.log(error));
    })
  );
});

1 Ответ

0 голосов
/ 31 мая 2018

Вот все различные параметры кэша у вас есть, и, насколько я понимаю из вашего вопроса, вы хотите подавать контент из кэша (если он есть) после начальной загрузки, а его нет - из сети.« Кэш, возвращающийся к сети » - это тип кэша, который необходимо реализовать для достижения того же самого.

...