Uma introdução aos trabalhadores de serviço JavaScript

Uma introdução aos trabalhadores de serviço JavaScript

Você já se perguntou como alguns sites parecem continuar funcionando mesmo quando você está offline? O segredo é simples: esses sites têm service workers.





Os service workers são a principal tecnologia por trás de muitos dos recursos nativos de aplicativos da Web modernos.





O que são trabalhadores de serviço?

Os trabalhadores de serviço são um tipo especializado de Trabalhadores da Web JavaScript . Um service worker é um arquivo JavaScript que funciona um pouco como um servidor proxy. Ele captura solicitações de rede de saída do seu aplicativo, permitindo que você crie respostas personalizadas. Você pode, por exemplo, servir arquivos em cache para o usuário quando ele estiver offline.





como tornar seu ps4 mais rápido

Os service workers também permitem que você adicione recursos como sincronização em segundo plano aos seus aplicativos da web.

iphone não aparecerá no itunes

Por que trabalhadores de serviços?

Os desenvolvedores da Web vêm tentando expandir os recursos de seus aplicativos há muito tempo. Antes que os service workers surgissem, você poderia usar várias soluções para tornar isso possível. Um particularmente notável foi o AppCache, que tornou os recursos de armazenamento em cache convenientes. Infelizmente, ele teve problemas que o tornaram uma solução impraticável para a maioria dos aplicativos.



O AppCache parecia ser uma boa ideia porque permitia especificar recursos para armazenar em cache com muita facilidade. No entanto, ele fez muitas suposições sobre o que você estava tentando fazer e depois quebrou horrivelmente quando seu aplicativo não seguiu exatamente essas suposições. Leia Jake Archibald's (infelizmente intitulado, mas bem escrito) Cache de aplicativo é um babaca para mais detalhes. (Fonte: MDN )

Service workers são a tentativa atual de reduzir as limitações dos aplicativos da Web, sem as desvantagens de tecnologias como o AppCache.





Casos de uso para service workers

Então, o que exatamente os service workers permitem que você faça? Os service workers permitem que você adicione recursos característicos de aplicativos nativos ao seu aplicativo da web. Eles também podem fornecer uma experiência normal em dispositivos que não oferecem suporte a service workers. Aplicativos como esse às vezes são chamados Aplicativos da Web progressivos (PWAs) .

configurando novo endereço de e-mail

Aqui estão alguns dos recursos que os service workers possibilitam:





  • Permitir que o usuário continue usando o aplicativo (ou pelo menos partes dele) quando não estiver mais conectado à Internet. Os service workers conseguem isso servindo ativos em cache em resposta a solicitações.
  • Em navegadores baseados em Chromium, um service worker é um dos requisitos para que um aplicativo Web seja instalável.
  • Os service workers são necessários para que seu aplicativo da Web possa implementar notificações por push.

O ciclo de vida de um Service Worker

Os service workers podem controlar as solicitações de um site inteiro ou apenas de uma parte das páginas do site. Uma página da Web específica pode ter apenas um service worker ativo e todos os service workers têm um ciclo de vida baseado em eventos. O ciclo de vida de um service worker geralmente se parece com isso:

  1. Cadastro e download do trabalhador. A vida de um service worker começa quando um arquivo JavaScript o registra. Se o registro for bem-sucedido, o service worker baixa e começa a ser executado dentro de um thread especial.
  2. Quando uma página controlada pelo service worker é carregada, o service worker recebe um evento 'install'. Este é sempre o primeiro evento que um service worker recebe e você pode configurar um ouvinte para esse evento dentro do worker. O evento 'install' geralmente é usado para buscar e/ou armazenar em cache quaisquer recursos que o service worker precise.
  3. Depois que o service worker termina de instalar, ele recebe um evento 'activate'. Este evento permite que o trabalhador limpe recursos redundantes usados ​​por trabalhadores de serviço anteriores. Se você estiver atualizando um service worker, o evento activate só será acionado quando for seguro fazer isso. Isso ocorre quando não há páginas carregadas ainda usando a versão antiga do service worker.
  4. Depois disso, o service worker tem controle total de todas as páginas que foram carregadas após o registro bem-sucedido.
  5. A última fase do ciclo de vida é a redundância, que ocorre quando o service worker é removido ou substituído por uma versão mais recente.

Como usar Service Workers em JavaScript

A API do Service Worker ( MDN ) fornece a interface que permite criar e interagir com service workers em JavaScript.