← Назад к вопросам

Что такое Service Worker и для чего он используется?

1.0 Junior🔥 161 комментариев
#Браузер и сетевые технологии

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Service Worker: назначение и применение

Service Worker — это мощная технология для создания быстрых, надежных и автономных веб-приложений. Это JavaScript-скрипт, который работает в отдельном потоке браузера, отдельно от основного потока приложения.

Основные характеристики

Service Worker выполняет роль посредника между вашим приложением и сетью. Вот его ключевые особенности:

  • Работает в фоновом потоке
  • Имеет собственный жизненный цикл
  • Может работать даже когда закрыта вкладка
  • Имеет доступ к Cache API и IndexedDB
  • Может перехватывать сетевые запросы

Основные применения

1. Кеширование контента

self.addEventListener("fetch", (event) => {
  event.respondWith(
    caches.match(event.request).then((response) => {
      return response || fetch(event.request);
    })
  );
});

2. Offline поддержка — приложение продолжает работать без интернета благодаря кешированным ресурсам.

3. Push-уведомления — сервер может отправлять уведомления даже когда приложение закрыто:

self.addEventListener("push", (event) => {
  const data = event.data.json();
  self.registration.showNotification(data.title, {
    body: data.message,
    icon: "/icon.png"
  });
});

4. Background Sync — отложенная синхронизация данных при восстановлении соединения:

self.addEventListener("sync", (event) => {
  if (event.tag === "sync-posts") {
    event.waitUntil(syncPosts());
  }
});

Жизненный цикл

  • Install — загрузка и кеширование ресурсов
  • Activate — очистка старых кеша версий
  • Fetch/Message — обработка событий

Регистрация Service Worker

if ("serviceWorker" in navigator) {
  navigator.serviceWorker.register("/sw.js").then((registration) => {
    console.log("Service Worker зарегистрирован");
  });
}

Преимущества

  • Производительность — кеширование уменьшает загрузку
  • Надежность — работает в offline режиме
  • Engagement — push-уведомления увеличивают взаимодействие
  • Экономия трафика — избегаются повторные загрузки

Важные ограничения

  • Работает только по HTTPS (кроме localhost)
  • Требует поддержки браузером
  • Сложность отладки
  • Потребление памяти и ресурсов

Service Worker — это незаменимый инструмент для создания PWA (Progressive Web Applications), обеспечивая быстрые, надежные и автономные приложения.

Что такое Service Worker и для чего он используется? | PrepBro