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

Reload de recursos no html5Mode

Flavio,

fiz alguns testes usando a ferramenta de devTools do Firefox na aba de rede e observei um comportamento diferente com o uso da ancora (/#/<route>) e com o uso do mode html5 (/<route>) e gostaria de confirmar se minha observação esta correta:

  • Uso da ancora (/#/<route>)

Nesta situação ao abrir a pagina index.html são carregados todos os recursos (js, css) e a conteudo da tag <ng-view>fica vazio, mas quando o endereço /#/fotos é chamado, apenas os novos recursos são carregados (meu-painel.html, json das fotos, etc) devido ao uso da ancora (#), que faz com que o navegador tente buscar o conteúdo dentro da pagina e o angular intercepta.

  • Uso do html5Mode (/<route>)

Nesta situação ao abrir a pagina index.html são carregados todos os recursos (js, css) e a conteúdo da tag <ng-view>fica vazio, mas quando o endereço /fotos todos os recursos são novamente carregados pelo navegador, pois a url é valida para solicitar um novo recurso externo e o navegador parte pra buscar o possível recurso solicitado.

Apesar do resultado final ser o mesmo, observei este comportamento através da aba network do devTools e queria confirmar se esta observação realmente procede ou minha observação foi equivocada. Entendo também que devido ao cache do navegador, na pratica muitos desses arquivos não serão trafegados. Isso ocorre porque estamos fazendo os testes ainda na barra de navegação, ou a chamada das rotas montadas em links trarão este mesmo comportamento?

Grato

4 respostas

Opa Fabio, essa é pra Flavio mesmo, mas como estou aqui passeando pelo fórum vou me arriscar :P. Depois ele aparece e da o veredito!

Eu acho que não é para carregar tudo de novo não... Pq aí já estaria fugindo do escopo de ser uma SPA.. uma vez que a página ta carregada, o angular vai buscando só o que for relativo ao template linkado com a url modificada no navegador.. Aquele endereço ali em cima, muda só através de js, não é feita uma nova requisição não.

Fala Alberto!

Na verdade eu tenho que pedir desculpas, estava assistindo as vídeo-aulas do Flavio e acabei "endereçando" a mensagem a ele... rs - Falha minha!

Eu também estou imaginando isso, mas quero apenas ratificar o raciocínio. Obrigado pelo breve retorno.

Continuo no aguardo de outras opiniões.

Abraço

solução!

No htnl5mode sempre vai uma requisição para o server que sempre retorna a página principal independente da url. É por isso que você consegue usar urls bonitas e indexaveis. Sobre carregar tudo..isso não é para acontecer porque em produção todas as parciais devem ser transformadas em scripts e carregadas com o bundle loader de sua preferência

Existem uma série de loader e talvez o mais famoso hoje seja o webpack.

Angular 1 é framework e não endereça várias questões automaticanente para você (você que monta sua infra) , diferente de Angular 2 que é uma plataforma para criação de SPA. O Angular CLI já as resolve.

Entendi Flavio, obrigado. Com o passar dos estudos percebi que este efeito estava acontecendo quando ainda estava fazendo os testes recarregando a barra de endereços.

Grato