Você já esteve em um site e notou uma notificação que sugere que há uma nova versão do site disponível? Recentemente, visitei a Caixa de entrada do...
For further actions, you may consider blocking this person and/or reporting abuse
Exatamente o que eu procurava.
Obrigado
Olá. Parabéns pelo artigo.
No inicio você fala sobre atualizar o pwa silenciosamente.
Pode explicar como é feito este procedimento?
fala Guilherme, uma atualização do Service Worker é acionada automaticamente pelo navegador assim que o arquivo de sw for alterado,
Podemos reunir alguns outros motivos também:
push
ousync
ou uma verificação de atualização do arquivo de sw (pelo navegador) nas últimas 24 horas.register()
, no caso da URL do sw ter sido alterada, você deve evitar mudar a url do seu sw em caso de trabalho offline (ex:index.html
registrasw-v1.js
como sw, o sw faz o cache doindex.html
para trabalhar offline, você atualiza oindex.html
para usarsw-v2.js
, o usuário nunca receberá osw-v2.js
)Quando uma atualização acontece, o comportamento padrão é:
install
, rodando em um novo contextoself.skipWaiting()
para remover essa espera e assumir o controle da página assim que o sw for instaladovou me concentrar no arquivo de sw nos exemplos a seguir,
vamos supor que instalamos o seguinte sw:
agora, vamos atualizar o sw para um nova versão, lembrando, que "atualizar um sw" é basicamente mudar qualquer byte dentro do arquivo registrado como sw,
Você pode perceber o uso do
self.skipWaiting()
na fase de instalação, isso irá silenciosamente dar controle da página para o novo sw, resultando na "atualização silenciosa" mencionada aqui.Olhando o artigo novamente, você pode ver que enviamos um evento para o sw do frontend em:
Desse modo, o cliente controla se ele deve atualizar no momento que a detecção de uma nova versão do sw PELO navegador acontece.
A atualização irá acontecer de qualquer modo, se houver um novo sw, o navegador irá atualizar o cliente com base nas regras descritas no começo desse comentário.
Se tiver mais dúvidas só mandar!