Как не кешировать service-worker’ом некоторый текст на странице?
У меня есть service-worker, которое кеширует мою главную страницу у PWA сайта, на главной странице есть селектор с выбором группы, он запоминается в куки и подгружается вот так <?= $_COOKIE[‘hshs’] ?>, но из-за кеширования там всегда то значение, которое закешировалось и оно не обновляется никак, как это можно обойти? То есть мне нужно, чтобы страница подгружалась из кеша, но это значение выводило актуальное из куков, а не из кеша
self.addEventListener('fetch', function(event) {
event.respondWith(
caches.match(event.request).then(function(response) {
if (response) {
// Если ресурс найден в кеше, возвращаем его
return response;
} else {
// Если ресурс не найден в кеше, отправляем запрос на сервер
return fetch(event.request).then(function(response) {
// Клонируем ответ, так как он может быть использован только один раз
let clonedResponse = response.clone();
// Проверяем, что запрашиваемый ресурс - не текстовый файл с выбором группы
if (event.request.url.indexOf('path/to/your/text/file') !== -1) {
// Заменяем значение на актуальное из куков
let text = await clonedResponse.text();
text = text.replace('<?= $_COOKIE[‘hshs’] ?>', getCookie('hshs'));
// Создаем новый ответ с обновленным значением
let newResponse = new Response(text, {
headers: clonedResponse.headers,
status: clonedResponse.status,
statusText: clonedResponse.statusText
});
// Сохраняем новый ответ в кеше
caches.open('cache-name').then(function(cache) {
cache.put(event.request, newResponse);
});
// Возвращаем новый ответ
return newResponse;
} else {
// Если ресурс не является текстовым файлом с выбором группы, сохраняем его в кеше и возвращаем
caches.open('cache-name').then(function(cache) {
cache.put(event.request, clonedResponse);
});
return response;
}
});
}
})
);
});