Aplicações Web são, involuntariamente, substituindo o antigo aplicativos da área de trabalho. Eles são mais convenientes de usar, eles são fáceis de atualizar, e eles não estão ligados a um dispositivo. E mesmo que os usuários estejam movendo gentilmente de aplicações web baseadas em navegador para as móveis, a demanda por aplicativos complexos e refinados já é enorme e ainda está crescendo., Se você está pensando em criar sua própria aplicação, você provavelmente ouviu que existem dois padrões de design principais para aplicações web: aplicação multi-página (MPA) e aplicação de página única (SPA). E, claro, ambas as modelos têm os seus prós e contras.

Antes de começar a transformar a sua ideia na aplicação real, você tem que responder a um monte de perguntas importantes. Para decidir qual o modelo de aplicativo é melhor para você, você deve seguir o conteúdo-primeira abordagem, que enfatiza a importância de colocar o seu conteúdo de aplicação antes de tudo o resto., Isso porque o conteúdo é a principal razão pela qual os usuários vão ou não usar a aplicação. E isso nos leva às questões mais importantes: que conteúdo você quer apresentar e que Conteúdo seus usuários se importarão mais com isso.

existem muitos prós e contras de SPA, bem como de MPA. Espero que as linhas abaixo irão esclarecer as diferenças entre estes dois padrões de design e levá-lo mais perto do ponto em que você vai saber que tipo de aplicação se encaixa mais sua idéia. E tornar a sua ideia sobre a sua própria aplicação Realidade.,

uma aplicação de uma única página é um aplicativo que funciona dentro de um navegador e não requer recarga de páginas durante a utilização. Você está usando este tipo de aplicações todos os dias. Estes são, por exemplo: Gmail, Google Maps, Facebook ou GitHub.SPAs são todos sobre servir um excelente UX, tentando imitar um ambiente “natural” no navegador — sem recarga de página, sem tempo de espera extra. É apenas uma página web que você visita que, em seguida, carrega todos os outros conteúdos usando JavaScript — que dependem fortemente.,

SPA solicita a marcação e os dados de forma independente e torna as páginas rectas no navegador. Podemos fazer isso graças aos frameworks JavaScript avançados como AngularJS, Ember.js, meteoro.js, Knock Out.js .sites de página única ajudam a manter o usuário em um espaço confortável web, onde o conteúdo é apresentado ao usuário de uma forma simples, fácil e viável.

Pros of the Single-Page Application:

  • SPA is fast, as most resources (HTML+CSS+Scripts) are only loaded once throughout the lifespan of application. Só os dados são transmitidos para trás e para a frente.,o desenvolvimento é simplificado e simplificado. Não há necessidade de escrever código para desenhar páginas no servidor. É muito mais fácil começar porque você geralmente pode iniciar o desenvolvimento de um arquivo: / / URI, sem usar nenhum servidor em tudo.
  • SPAs são fáceis de depurar com o Chrome, uma vez que você pode monitorar as operações de rede, investigar elementos de página e dados associados a ele.
  • é mais fácil fazer uma aplicação móvel porque o desenvolvedor pode reutilizar o mesmo código de infra-estrutura para aplicações web e aplicações móveis nativas.
  • SPA pode armazenar qualquer armazenamento local de forma eficaz., Um aplicativo envia apenas um pedido, armazenar todos os dados, então ele pode usar esses dados e funciona mesmo offline.

Cons of the Single-Page Application:

  • É muito complicado e não é uma tarefa fácil para fazer SEO otimização de uma aplicação de uma única página. Seu conteúdo é carregado por AJAX (Javascript assíncrono e XML) – um método de troca de dados e atualização na aplicação sem atualizar a página.
    UPDATE 27.09.2017: In her comment, Iris Shaffer correctly pointed out that it can be done on server side as well. Na verdade, hoje é mais fácil do que antes.,
  • é lento para baixar porque os frameworks pesados do cliente são necessários para ser carregado para o cliente.
  • requer que JavaScript esteja presente e habilitado. Se algum usuário desactiva JavaScript em seu navegador, não será possível apresentar a aplicação e suas ações de uma forma correta.
    UPDATE 27.09.2017: In her comment, Iris Shaffer has notic that with isomorphic rendering / server side rendering, you can render the page on the server already. Quando a renderização inicial está no servidor e pode ser Cache, desativar JS não seria uma preocupação para obter uma página renderizada., Teoricamente, é verdade. Obviamente você pode renderizar do lado do servidor. Mas a falta de JS pode ser uma preocupação para outras funcionalidades. Muitas coisas podem ser feitas em HTML & CSS mas pela minha experiência seria um inferno fazê-lo desta forma em vez de usar JavaScript.em comparação com a aplicação” tradicional”, a SPA é menos segura. Devido ao Cross-Site Scripting (XSS), ele permite que os atacantes injetem scripts do lado do cliente na aplicação web por outros usuários.,o vazamento de memória em JavaScript pode até causar um sistema poderoso para desacelerar
  • Neste modelo, botões para trás e para a frente tornam-se disfuncionais.
    UPDATE 27.09.2017: today, it’s not any issue anymore.

aplicação de várias páginas

aplicações de várias páginas funcionam de uma forma “tradicional”. Todas as mudanças, por exemplo. exibir os dados ou enviar os dados de volta para os pedidos do servidor rendendo uma nova página do servidor no navegador. Estas aplicações são grandes, maiores do que SPAs porque precisam ser. Devido à quantidade de conteúdo, estas aplicações têm muitos níveis de IU., Felizmente, já não é um problema. Graças ao AJAX, não temos que nos preocupar que grandes e complexas aplicações têm que transferir um monte de dados entre servidor e navegador. Essa solução melhora e permite atualizar apenas partes particulares da aplicação. Por outro lado, acrescenta mais complexidade e é mais difícil de desenvolver do que uma aplicação de uma única página.

Pros of the Multiple-Page Application:

  • É a abordagem perfeita para os usuários que precisam de um mapa visual de onde ir na aplicação., A navegação de menu sólida e de poucos níveis é uma parte essencial da aplicação tradicional Multi-Páginas.muito bom e fácil para uma boa gestão SEO. Ele dá melhores chances de classificação para diferentes palavras-chave, uma vez que uma aplicação pode ser otimizada para uma palavra-chave por página.

Cons da aplicação de várias páginas:

  • Não há opção para usar a mesma infra-estrutura com aplicações móveis.
    UPDATE 27.09.2017: naquela época, quando eu estava escrevendo este artigo, eu não tinha muita experiência com backend e com aplicativos móveis., É óbvio para mim que podes usar a mesma infra-estrutura para ambos. E gostaria de agradecer a todos os leitores que apontaram isso.
  • o desenvolvimento da interface e da infra-estrutura está estreitamente associado.o desenvolvimento torna-se bastante complexo. O desenvolvedor precisa usar frameworks para ambos os lados cliente e servidor. Isso resulta em um tempo mais longo de desenvolvimento de aplicações.

SPA ou MPA?

Antes de implantar uma aplicação web, você precisa considerar o objetivo dela., Se você sabe que você precisa de várias categorias (porque, por exemplo, você executa uma loja online ou publica um monte de outros conteúdos) — use um site de várias páginas. Se você tem certeza de que o seu site é apropriado para uma pura experiência de uma única página-Ir para ele. E se você gosta de SPA, mas mal pode caber tudo em uma única página, considere o site híbrido em vez disso. Esta é outra maneira que não mencionei antes. Uma aplicação híbrida leva o que é o melhor em ambas as abordagens e tentar minimizar as desvantagens., É, de fato, uma aplicação de uma única página que usa âncoras de URL como páginas sintéticas que permitem mais na navegação do navegador de construção e funcionalidade de preferência. Mas este é o tópico para outro artigo.

talvez no futuro, todos usarão um modelo de Aplicação de Página Única (incluindo um aplicativo híbrido), pois parece trazer um monte de vantagens. Muitos aplicativos no mercado estão migrando para este modelo. No entanto, como alguns projetos simplesmente não podem caber em SPA, o modelo MPA ainda é vívido.

originalmente publicado por Paweł Skólski em neoteric.eu/blog a 1 de dezembro de 2016.