Service Worker — JavaScript-поток, работающий отдельно от страницы и перехватывающий network requests. Основа Progressive Web Apps: offline cache, push notifications, background sync. Lifecycle: install → activate → fetch events. Требует HTTPS (или localhost). Scope по умолчанию — директория, где лежит .js файл.
Ниже: подробности, пример, смежные термины, FAQ.
navigator.serviceWorker.register('/sw.js')caches.open(), caches.match()self.addEventListener('fetch', e => {
e.respondWith(
caches.match(e.request).then(r => r || fetch(e.request))
);
});Скорость загрузки напрямую влияет на конверсию, SEO-позиции и удовлетворённость пользователей. Google использует Core Web Vitals как фактор ранжирования. Каждая лишняясекунда загрузки может стоить до 7% конверсии.
Анализ на основе Google Lighthouse: Performance, Accessibility, Best Practices, SEO.
LCP (скорость отрисовки), FID (интерактивность), CLS (визуальная стабильность) — ключевые метрики Google.
Разбивка по типам: HTML, CSS, JavaScript, изображения, шрифты. Размер, количество запросов, блокирующие ресурсы.
Конкретные рекомендации с оценкой экономии: сжатие изображений, кеширование, минификация и т.д.
Core Web Vitals для ранжирования
оптимизация производительности
скорость = конверсия
регрессия производительности
async/defer блокируют отрисовку. Переместите в конец или добавьте атрибут.Cache-Control браузер перезагружает CSS/JS при каждом визите.loading="lazy" для изображений ниже first fold.brotli on;Cache-Control: max-age=31536000, immutable. HTML: max-age=0, s-maxage=60.<link rel="preload"> для шрифтов и CSS. Уменьшает LCP на 200-500ms.История проверок скорости, сравнение с конкурентами и мониторинг PageSpeed.
Зарегистрироваться (FREE)Polезен даже для obычных сайтов: offline-first UX, faster repeat visits через cache.
Да, с iOS 11.3 (2018). Некоторые advanced features (Push) только с iOS 16.4+.
DevTools → Application → Service Workers. Можно force update, see fetch events.