Сервисные работники - всегда обслуживают из сети и кеша - PullRequest
0 голосов
/ 08 июня 2018

Немного борясь с этим, поэтому любая помощь будет принята.

Мы запускаем сайты, которые постоянно обновляются с помощью CMS, но хотим кэшировать страницу для автономного / медленного использования.

Мы немного теряем, как обслуживать ресурс из сети, но при этом кэшируем его (или обновляем кэшированную версию).

Пока это наш код, но все кажетсячтобы сделать, это загрузить CSS, JS и другие страницы из кэша.

Любые предложения очень ценятся.

event.respondWith(
    fetch(event.request)
        .then(response => {
            // Loads from network
            debug(`Loading from network: ${response.url}`);

            caches.open(config.cayg.key + config.version)
                .then(cache => {
                    cache.put(event.request, response.clone());
                });

            return response;
        })
        .catch(response => {
            // try cache
            debug(`Loading from cache: ${response.url}`);
            caches.match(event.request)
                .then(response)
                .catch(() => caches.match('/offline/')); // otherwise show offline
        })
);

1 Ответ

0 голосов
/ 09 июня 2018

Mozilla инкапсулирует большинство случаев использования и предоставляет примеры и описания для различных рецептов / стратегий.Попробуйте использовать стратегию «сеть или кэш»:

https://serviceworke.rs/strategy-network-or-cache.html

(пользовательский интерфейс немного неинтуитивен, а ссылки на демонстрационные / кодовые коды находятся вверху страницы)

...