PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Что такое Service Worker?

DOM и браузер

Service Worker — это скрипт, работающий в фоне отдельно от страницы, выступающий прокси между приложением и сетью. Он даёт офлайн-работу, кеширование и push-уведомления.

Что это

Service Worker — фоновый поток, который браузер запускает независимо от вкладки. Он перехватывает сетевые запросы и может отвечать из кеша.

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

// В sw.js — перехват запросов
self.addEventListener('fetch', (event) => {
  event.respondWith(
    caches.match(event.request).then((cached) => cached || fetch(event.request)),
  );
});

Возможности

  • Офлайн-режим — отдавать закешированные ресурсы без сети.
  • Кеширование — стратегии (cache-first, network-first).
  • Push-уведомления — получать пуши даже без открытой вкладки.
  • Фоновая синхронизация.
  • Основа PWA (Progressive Web Apps).

Ограничения

  • Работает только по HTTPS (кроме localhost).
  • Нет доступа к DOM — общается со страницей через postMessage.
  • Асинхронный, событийно-ориентированный; может «засыпать».
  • Имеет собственный жизненный цикл (install → activate → fetch).

Коротко для собеседования

Service Worker — фоновый скрипт-прокси между приложением и сетью: перехватывает запросы, кеширует, даёт офлайн-режим, push-уведомления и фоновую синхронизацию (основа PWA). Работает по HTTPS, без доступа к DOM (через postMessage), со своим жизненным циклом.

Другие вопросы раздела