O que é Single Page Application?

Single Page Application (SPA) é um modelo de desenvolvimento em que a aplicação web se resume a uma única página que contém em sí todas as outras paginas do site. Para que isto aconteça é necessária uma abordagem diferente no que concerne ao roteamento.

O roteamento em uma pagina da web é mapeamento entre a URL em que o usuário se encontra se encontra e algum recurso do servidor, que pode ser uma página da web ou uma função ou algum outro tipo de arquivo. No modelo SPA o roteamento das páginas é feito localmente via javascript, com isto a mudança de paginas ocorre de uma maneira muito rápida, reduzindo bastante a quantidade de requisições ao servidor web. Hoje em dia muitos frameworks em javascript estão implementando este tipo de roteamento (a saber: Angular, e Backbone dentre outros). No geral estes frameworks capturam a propriedade “location.href”, que deve conter um caractere especial “#” seguido de um identificador da rota. Este identificador pode ser o mesmo o nome de alguma função no javascript ou algum componente (no caso do angular), podendo conter parametros de rota, ex: “www.example.com/#users/user/3”, onde “3” é o parametro recebido através da rota.

O modelo SPA é particularmente útil no desenvolvimento de aplicações para dispositivos móveis, como é o caso do Ionic Framework, visto que seria inviável fazer requisições ao servidor para a mudança de telas neste tipo de aplicação. Além disso este modelo presume que a maior parte das regras de negócio da aplicação sejam implementadas no cliente. Um outro efeito positivo é a possibilidade de ter acesso as funções do site usar o site em modo off-line.