Вопрос проверяет понимание стратегий кэширования для обеспечения работы веб-приложения в офлайн-режиме с использованием Service Worker и Cache API.
Для обеспечения работы веб-приложения без интернета используется комбинация Service Worker и Cache API. Service Worker — это скрипт, который работает в фоновом режиме и перехватывает сетевые запросы. Он позволяет реализовать различные стратегии кэширования, такие как 'Cache First' (сначала кэш, потом сеть) или 'Network First' (сначала сеть, при ошибке — кэш).
// service-worker.js
self.addEventListener('install', (event) => {
event.waitUntil(
caches.open('my-cache-v1').then((cache) => {
return cache.addAll([
'/',
'/styles.css',
'/script.js',
'/offline.html'
]);
})
);
});
self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request).then((cachedResponse) => {
// Возвращаем кэш, если он есть
if (cachedResponse) {
return cachedResponse;
}
// Иначе делаем сетевой запрос
return fetch(event.request).catch(() => {
// Если сеть недоступна, показываем офлайн-страницу
return caches.match('/offline.html');
});
})
);
});Вывод: Кэширование запросов через Service Worker необходимо для создания надежных офлайн-приложений. Оно улучшает пользовательский опыт и снижает нагрузку на сеть, особенно в условиях плохого соединения.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию