Neste ponto, os service workers podem parecer complicados. Há muitas interações complexas que são difíceis de acertar. Solicitações de rede. Estratégias de armazenamento em cache! Gerenciamento de cache. Pré-armazenamento em cache É muito para se lembrar. Isso não faz do service worker uma tecnologia mal projetada, funciona como pretendido e resolve problemas difíceis.
Boas abstrações tornam APIs complexas mais fáceis de usar. É aí que entra o Workbox. O Workbox é um conjunto de módulos que simplifica o roteamento e o armazenamento em cache comuns do service worker. Cada módulo disponível aborda um aspecto específico do desenvolvimento de service workers. O objetivo do Workbox é facilitar ao máximo o uso de service workers, permitindo a flexibilidade para acomodar requisitos de aplicativos complexos quando necessário.
Nos casos mais simples,
workbox-build
oferece alguns métodos que podem gerar um service worker que pré-armazena em cache recursos especificados.
O método generateSW
faz a maior parte do trabalho imediatamente,
enquanto o método injectManifest
oferece mais controle quando necessário.
Para casos de uso mais avançados, outros módulos podem ajudar. Alguns desses módulos são:
workbox-routing
para correspondência de solicitação.workbox-strategies
para estratégias de armazenamento em cache.workbox-precaching
para pré-armazenamento em cache.workbox-expiration
para gerenciar caches.workbox-window
para registrar um service worker e gerenciar atualizações nowindow context
.
Esses e outros módulos ajudam a compor o código do service worker de maneira declarativa, o que é mais fácil de ler e manter do que usar diretamente as APIs do service worker. Esta documentação explica como usá-los de maneira aplicada.