У меня есть сайт на Joomla 3.9+. Я преобразовал свой веб-сайт в приложение pwa и для кеширования контента использую динамический кеш. Это код моего файла sw.js.
const dynamicCacheName = 'site-dynamic-v1';
// activate event
self.addEventListener('activate', evt => {
evt.waitUntil(
caches.keys().then(keys => {
return Promise.all(keys
.filter(key => key !== dynamicCacheName)
.map(key => caches.delete(key))
);
})
);
});
// fetch event
self.addEventListener('fetch', evt => {
evt.respondWith(
caches.match(evt.request).then(cacheRes => {
return cacheRes || fetch(evt.request).then(fetchRes => {
return caches.open(dynamicCacheName).then(cache => {
cache.put(evt.request.url, fetchRes.clone());
return fetchRes;
})
});
})
);
});
Этот код кэширует все на лету и добавляет в cacheStorage. Все отлично, аудит LightHouse говорит мне, что у меня есть полное приложение pwa. Но добавляя на сайт новые статьи, которые они не выводят на frontEnd, выводят только то, что было кэшировано serviceWorker, приходится убирать вручную. Как я могу обновить serviceWorker, чтобы при пополнении сайта новый контент сайта выдавался автоматически. Какие стратегии кэширования я могу использовать на сайте? Я не хочу использовать статический кеш, потому что на сайте много скриптов и стилей, а также шрифтов, которые загружаются из разных cdn.