На этом этапе сервисные работники могут показаться непростыми. Существует множество сложных взаимо��ействий, которые трудно понять правильно. Сетевые запросы! Стратегии кэширования! Управление кэшем! Предварительное кэширование! Это многое нужно запомнить. Это не делает Service Worker плохо спроектированной технологией; он работает так, как задумано, и решает сложные проблемы.
Хорошие абстракции упрощают использование сложных API. Вот здесь-то и появляется Workbox. Workbox — это набор модулей, которые упрощают маршрутизацию и кэширование обычных сервис-воркеров. Каждый доступный модуль посвящен определенному аспекту разработки сервисных работников. Workbox стремится максимально упростить использование сервис-воркеров, обеспечивая при этом гибкость для удовлетворения сложных требований приложений, где это необходимо.
В простейших случаях workbox-build
предлагает несколько методов, которые могут создать сервис-воркера, который предварительно кэширует указанные ресурсы. generateSW
выполняет большую часть работы «из коробки», а метод injectManifest
предлагает больше контроля, когда это необходимо.
В более сложных случаях использования могут помочь другие модули. Вот несколько таких модулей:
-
workbox-routing
для сопоставления запросов. -
workbox-strategies
для стратегий кэширования. -
workbox-precaching
для предварительного кэширования. -
workbox-expiration
для управления кэшами. -
workbox-window
для регистрации сервис-воркера и обработки обновлений вwindow context
.
Эти и другие модули помогают составлять код сервис-воркера декларативным образом, который легче читать и поддерживать, чем напрямую использовать API-интерфейсы сервис-воркера. Эта документация объяснит, как использовать их прикладным образом.