javascript42
Главная
Все учебники
Блог
Учебник Sw-precache
Введение в Service Worker и sw-precache
Что такое Service Worker и зачем он нужен
Жизненный цикл Service Worker
Precaching как стратегия кэширования
Место sw-precache в экосистеме инструментов
Сравнение с Workbox и другими решениями
Требования к окружению и браузерная поддержка
Установка и первоначальная настройка
Установка через npm и yarn
Структура проекта для работы с sw-precache
Интеграция в существующий проект
Генерация файла Service Worker вручную через CLI
Проверка корректности установки
Инструменты разработчика в браузере для отладки SW
Конфигурация sw-precache
Обзор объекта конфигурации
Параметр staticFileGlobs и шаблоны путей
Параметр stripPrefix и stripPrefixMulti
Параметр replacePrefix
Параметр root и работа с базовыми путями
Параметр cacheId и управление версиями кэша
Параметр maximumFileSizeToCacheInBytes
Параметр ignoreUrlParametersMatching
Параметр directoryIndex
Параметр navigateFallback и navigateFallbackWhitelist
Параметр verbose и логирование
Параметр skipWaiting и clientsClaim
Параметр handleFetch
Параметр importScripts
Параметр templateFilePath
Интеграция с системами сборки
Интеграция с Gulp: базовая настройка
Интеграция с Gulp: продвинутые сценарии
Интеграция с Grunt: базовая настройка
Интеграция с Grunt: управление задачами
Интеграция с Webpack через sw-precache-webpack-plugin
Настройка webpack-плагина: параметры и опции
Интеграция с npm scripts без таск-менеджера
Порядок запуска генерации относительно остальных задач сборки
Стратегии кэширования в sw-precache
Precache и его отличие от runtime-кэширования
Параметр runtimeCaching: структура и назначение
Обработчик cacheFirst
Обработчик networkFirst
Обработчик fastest
Обработчик networkOnly
Обработчик cacheOnly
Настройка urlPattern для маршрутизации запросов
Настройка параметров кэша через options внутри runtimeCaching
Ограничение размера и времени жизни runtime-кэша
Комбинирование precache и runtimeCaching
Версионирование и обновление кэша
Как sw-precache генерирует хэши файлов
Автоматическое инвалидирование при изменении файлов
Поведение при обновлении Service Worker
Параметр skipWaiting: немедленная активация
Параметр clientsClaim: захват открытых вкладок
Стратегии уведомления пользователя об обновлении
Ручное управление обновлением через postMessage
Отладка проблем с устаревшим кэшем
Работа с навигационными запросами
Проблема SPA и маршрутизации на стороне клиента
Параметр navigateFallback: настройка и ограничения
Параметр navigateFallbackWhitelist: фильтрация маршрутов
Параметр navigateFallbackBlacklist
Offline-страница как fallback для навигации
Обработка вложенных маршрутов и динамических сегментов
Работа в офлайн-режиме
Принцип работы офлайн-кэша
Что и когда кэшировать для надёжного офлайна
Кэширование шрифтов и сторонних ресурсов
Кэширование API-ответов через runtimeCaching
Проблема динамического контента в офлайне
Тестирование офлайн-сценариев в DevTools
Индикация офлайн-состояния в интерфейсе
Безопасность и ограничения
Требование HTTPS для Service Worker
Локальная разработка на localhost
Область видимости Service Worker: параметр scope
Ограничения при работе с cross-origin ресурсами
Заголовки CORS и их влияние на кэширование
Непрозрачные ответы: риски и обходные пути
Ограничения на размер кэша в разных браузерах
Отладка и диагностика
Панель Application в Chrome DevTools
Просмотр и очистка кэша вручную
Принудительное обновление Service Worker
Логирование через параметр verbose
Типичные ошибки при генерации SW-файла
Ошибки времени выполнения в консоли браузера
Инспектирование сетевых запросов в офлайн-режиме
Проблемы с кэшированием после деплоя
Использование about:serviceworkers в Firefox
Продвинутые сценарии использования
Генерация нескольких Service Worker для разных разделов
Кастомный шаблон Service Worker через templateFilePath
Динамическая конфигурация в зависимости от окружения
Работа с хэшированными именами файлов из сборщика
Интеграция с Push-уведомлениями
Фоновая синхронизация и Background Sync API
Использование importScripts для расширения функциональности
Переход с sw-precache на Workbox
Тестирование
Модульное тестирование конфигурации sw-precache
Тестирование поведения кэша в браузере
Проверка офлайн-режима в CI-среде
Lighthouse: аудит PWA и оценка кэширования
Регрессионное тестирование после обновления конфигурации
Производительность и оптимизация
Влияние precache на время первой загрузки
Оптимизация списка кэшируемых файлов
Разделение precache и runtime по приоритету
Ленивое кэширование некритичных ресурсов
Анализ размера кэша и его влияния на устройство
Стратегии для мобильных устройств с ограниченной памятью