Глоссарий

Service Worker

Service Worker — JavaScript-файл, выполняющийся в фоновом потоке браузера, независимо от страницы. Перехватывает сетевые запросы, кеширует ресурсы и позволяет приложению работать офлайн. Техническая основа PWA.

Как регистрируется

// Регистрация
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw.js');
}

// sw.js — файл Service Worker
self.addEventListener('install', event => {
  event.waitUntil(
    caches.open('v1').then(cache =>
      cache.addAll(['/index.html', '/app.css', '/app.js'])
    )
  );
});

self.addEventListener('fetch', event => {
  event.respondWith(
    caches.match(event.request).then(cached =>
      cached ?? fetch(event.request)
    )
  );
});

Стратегии кеширования

Ограничения

Только HTTPS. Нет прямого доступа к DOM. Собственный цикл жизни (install → activate → fetch).