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

Dúvida sobre views + server node

Professor, Eu não entendi muito bem por que precisamos usar o node para rodar as partialviews no projeto.

3 respostas
solução!

Olá Jaqueline! Vamos lá, preparada? :)

Poderíamos ter usado um servidor Java, Php, Rails, mas escolhemos o Node.js. Por quê? A burocracia para subir o servidor é bem pequena, evitando que o aluno perca o foco do AngularJS focando nos detalhes do servidor.

Agora, porque precisamos de um servidor para que nossas views parciais funcionem? Bem, numa aplicação web normal, cada página que você acessa faz com que o navegador inteiro recarregue e durante esse processo pode ser que você fique com a tela branca tendo que espera a página carregar, o que não é muito bom para a experiência do usuário. Seria legal que ele tivesse uma experiência como uma aplicação que roda em seu celular ou Desktop: o usuário não vê recarregamento, ele apenas clica num botão e as coisas acontecem.

Enfim, no lugar de recarregar toda a página, fazemos uma macete: carregamos apenas a página principal e quando o usuário quer visitar outra página, não saímos da página que estamos e fazemos uma requisição AJAX para o servidor para obter a próxima página a ser exibida. Você concorda que essa página não precisa ter a tag head nem os imports de CSS e SCRIPTS porque eles já foram carregados pela página principal que nunca muda? Daí.. essa página é carregada via AJAX... e inserida na marra dentro da página que já foi carregada. Nesse processo manipulamos o DOM, isto é, temos que sacar muito de JavaScript.

Daí, como alteramos a página via JavaScript ela não foi recarregada, certo? Ela pisca? Não. Para o usuário, seu conteúdo mudará passando a experiência como se fosse de uma aplicação desktop, onde não há tela de carregamento, etc.

Agora já posso dar a sua resposta: qual a única forma de uma página já carregada, buscar assincronamente outra página ou um fragmento de página sem fazer a página recarregar totalmente? Requisições AJAX! E requisições AJAX são feitas para um servidor!

O sistema de rotas do AngularJS abstrai de você, isto é, tira a sua responsabilidade de realizar todo esse processo na mão, mas por debaixo dos panos ele realiza requisições ajax para seu servidor.

Sem um servidor, você jamais conseguiria ver o sistema de rotas do AngularJS funcionar, porque ele trabalha utilizando requisições Ajax, e toda requisição Ajax é para um servidor e não para um arquivo em disco em sua máquina (algo possível, mas não permitido por muitos navegadores).

Espero ter ajudado! Abraço!

Professor, Obrigada pela sua resposta! Agora ficou claro, que na verdade ele está fazendo uma requisição ajax, por detrás dos códigos das rotas.

É possível eu utilizar esse mesmo exemplo que você desenvolveu em um projeto MVC C# por exemplo?

Com as rotas e tudo mais?!

Sim, claro, é possível. Porém você terá que estruturar seu backend criando os REST endpoints de que sua aplicação precisa. O AngularJS é agnóstico da tecnologia usada no servidor, sendo necessário apenas que seu server "cuspa" JSON como dado.

Se você não tiver mais dúvidas, pode concluir essa thread? Concluir as threads me ajuda bastante para saber quem teve ou ainda não teve uma resposta dada.

Abraço e bom estudo!