Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Cache e Deploy do Front End

Quando estamos trabalhando com Angular, ou qualquer SPA, qual é a melhor prática para fazermos com que o usuário tenha a versão atualizada no browser sem precisar dar F5?

Se eu modificar um controller angular e fizer deploy, mas o usuário estiver no meio de um cadastro? O que fazer?

Gostaria de saber se alguém já teve esse dilema com relação ao deploy do front-end e como resolveu!

3 respostas

Versão atualizada sem apertar F5? Não entendi sua pergunta com clareza. Você não estaria se referindo a hot deploy? Se for, não existe isso no Angular 1. No máximo você pode atualizar módulos carregados através de alguma lib de lazy loading. Mas ainda assim o que já foi carregado já não será atualizado.

Na verdade, minha questão é com o deploy em produção. Quando a aplicação é single page, ela carrega os javascripts e css's apenas uma vez. Mas se eu fizer deploy de uma nova versão do front-end, enquanto o usuário não der refresh na página, ele continuará com a versão antiga.

O que eu gostaria de saber é se há alguma forma de atualizar o front-end de forma menos intrusiva do que dar um refresh na página do usuário.

solução!

Bruno, uma solução é usar um push notification. Por exemplo, usar websocket com uma conexão permanente com o servidor. Quando algo for atualizado, o backend dispara um evento que é escutado pelo websocket em sua aplicação que pode executar algum código. Dentro do contexto que você me passou, esse é um caminho. Mas tem que mexer bastante coisa.