Service Worker (SW) — это скрипт, работающий в фоновом режиме, который перехватывает сетевые запросы и управляет кэшированием ресурсов. Для эффективной отладки SW необходимо использовать встроенные инструменты браузера, которые позволяют отслеживать регистрацию, активацию, запросы и работу кэшей. В современных браузерах, таких как Chrome и Firefox, эти возможности сосредоточены в панели Developer Tools.
В Chrome панель Application предоставляет полный контроль над Service Worker и связанными с ним данными:
Service Workers Раздел отображает список зарегистрированных SW, их статус (activating, activated, redundant), а также позволяет вручную зарегистрировать, остановить или удалить SW. Здесь можно наблюдать:
Cache Storage Позволяет просматривать содержимое кэшей, созданных SW. Каждый кэш имеет имя и набор ключей (URLs). Возможности включают:
sw-precache, которая автоматически генерирует
кэшированные файлы.IndexedDB / LocalStorage / SessionStorage SW часто взаимодействуют с IndexedDB для хранения сложных структур данных. Разделы показывают структуру баз данных, их версии и содержимое.
Раздел Network в DevTools позволяет отслеживать все HTTP-запросы и ответы, включая те, которые перехватывает SW:
200 OK, 304 Not Modified,
ошибки сетиДля SW особенно полезна колонка Service Worker в
таблице запросов, которая показывает, был ли ресурс обслужен через SW
кэш или напрямую через сеть. Это помогает проверить корректность работы
правил runtimeCaching в sw-precache.
Консоль DevTools предоставляет информацию о событиях SW:
Для отладки удобно использовать console.log внутри SW,
однако стандартная консоль страницы не показывает эти логи. В Chrome их
можно увидеть, выбрав Service Worker в панели
Application и нажав на ссылку inspect.
Для тестирования кэширования SW важны режимы эмуляции сети:
Offline В панели Network можно установить режим offline, чтобы проверить доступность ресурсов только из кэша. Все запросы сети будут проваливаться, если SW не кэширует соответствующий ресурс.
Throttling Позволяет имитировать медленное соединение (3G, 2G), что помогает протестировать стратегию кэширования и время ответа SW.
Chrome предоставляет следующие возможности управления SW:
Эти инструменты позволяют полностью контролировать жизненный цикл SW, наблюдать за установкой новых версий, отладкой кэширования и обработкой fetch-запросов.
Библиотека sw-precache генерирует SW автоматически и
управляет кэшированием статических файлов. Основные моменты, которые
важно проверять через DevTools:
precache добавленыИспользуя инструменты разработчика, можно детально контролировать
каждый шаг работы SW и убедиться, что sw-precache выполняет
свои задачи надежно.