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