Вопрос проверяет понимание роли Service Worker в веб-разработке
Service Worker — это скрипт, работающий в фоне, отдельно от веб-страницы. Он позволяет:
Кешировать ресурсы для оффлайн-работы.
Перехватывать сетевые запросы (например, для PWA).
Отправлять push-уведомления.
Оффлайн-доступ
Service Worker может сохранять файлы в кеш и отдавать их, когда нет интернета.
Управление запросами
Можно перехватывать fetch-запросы и решать, брать данные из сети или из кеша.
Фоновые процессы
Работает даже когда сайт закрыт (например, для push-уведомлений).
// Основной код (main.js)
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js')
.then(() => console.log('SW зарегистрирован'))
.catch(err => console.log('Ошибка:', err));
}sw.js:const CACHE_NAME = 'my-cache-v1';
const urlsToCache = ['/', '/styles.css', '/script.js'];
self.addEventListener('install', (event) => {
event.waitUntil(
caches.open(CACHE_NAME)
.then(cache => cache.addAll(urlsToCache))
);
});
self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request)
.then(response => response || fetch(event.request))
);
});