Las aplicaciones Web son involuntariamente en sustitución de la antigua aplicaciones de escritorio. Son más convenientes de usar, son fáciles de actualizar y no están vinculados a un dispositivo. Y a pesar de que los usuarios se están moviendo suavemente de aplicaciones web basadas en navegador a los móviles, la demanda de aplicaciones complejas y refinadas ya es enorme y sigue creciendo., Si está pensando en Crear su propia aplicación, probablemente haya escuchado que hay dos patrones de diseño principales para aplicaciones web: aplicación de varias páginas (MPa) y aplicación de una sola página (SPA). Y, por supuesto, ambos modelos tienen sus pros y sus contras.

antes de empezar a convertir su idea en la aplicación real, usted tiene que responder a un montón de preguntas importantes. Para decidir qué modelo de aplicación es mejor para usted, debe seguir el enfoque de contenido primero, que enfatiza la importancia de poner el contenido de su aplicación antes que todo lo demás., Esto se debe a que el contenido es la razón principal por la que los usuarios usarán o no la aplicación. Y esto nos lleva a las preguntas más importantes: qué contenido quieres presentar y qué contenido les importará más a tus usuarios.

hay muchos pros y contras de SPA, así como de MPA. Espero que las líneas a continuación aclaren las diferencias entre estos dos patrones de diseño y lo acerquen al punto en el que sabrá qué tipo de aplicación Se adapta más a su idea. Y hacer que su idea sobre la propia aplicación se haga realidad.,

una aplicación de una sola página es una aplicación que funciona dentro de un navegador y no requiere la recarga de la página durante el uso. Está utilizando este tipo de aplicaciones todos los días. Estos son, por ejemplo: Gmail, Google Maps, Facebook o GitHub.
SPAs se trata de servir a una experiencia de usuario excepcional al tratar de imitar un entorno «natural» en el navegador: sin recargas de página, sin tiempo de espera adicional. Es solo una página web que visita que luego carga todo el resto del contenido usando JavaScript — del que dependen en gran medida.,

SPA solicita el marcado y los datos de forma independiente y renderiza las páginas directamente en el navegador. Podemos hacer esto gracias a los marcos avanzados de JavaScript como AngularJS, Ember.js, meteoro.js, Knockout.js .los sitios de una sola página ayudan a mantener al usuario en un espacio web cómodo donde el contenido se presenta al usuario de una manera simple, fácil y viable.

Pros de la aplicación de una sola página:

  • SPA es rápido, ya que la mayoría de los recursos (HTML+CSS+Scripts) solo se cargan una vez durante la vida útil de la aplicación. Solo los datos se transmiten de ida y vuelta.,
  • El desarrollo se simplifica y optimiza. No es necesario escribir código para renderizar páginas en el servidor. Es mucho más fácil comenzar porque normalmente puede iniciar el desarrollo desde un archivo file://URI, sin usar ningún servidor.
  • Los SPAs son fáciles de depurar con Chrome, ya que puede supervisar las operaciones de red, investigar los elementos de la página y los datos asociados a ella.
  • Es más fácil hacer una aplicación móvil porque el desarrollador puede reutilizar el mismo código de backend para aplicaciones web y aplicaciones móviles nativas.
  • SPA puede almacenar en caché cualquier almacenamiento local de manera efectiva., Una aplicación envía solo una solicitud, almacena todos los datos, luego puede usar estos datos y funciona incluso sin conexión.

contras de la aplicación de una sola página:

  • Es muy complicado y no es una tarea fácil hacer optimización SEO de una aplicación de una sola página. Su contenido es cargado por AJAX (Asynchronous JavaScript and XML) – un método de intercambio de datos y actualización en la aplicación sin actualizar la página.
    actualización 27.09.2017: en su comentario, Iris Shaffer señaló correctamente que también se puede hacer en el lado del servidor. De hecho, hoy es más fácil de lo que solía ser.,
  • Es lento para descargar porque se requiere que los marcos de cliente pesados se carguen en el cliente.
  • requiere que JavaScript esté presente y habilitado. Si algún usuario deshabilita JavaScript en su navegador, no será posible presentar la aplicación y sus acciones de manera correcta.
    actualización 27.09.2017: en su comentario, Iris Shaffer ha notado que con el renderizado isomorfo / renderizado del lado del servidor, ya puede renderizar la página en el servidor. Cuando el renderizado inicial está en el servidor y se puede almacenar en caché, deshabilitar JS no sería una preocupación para obtener una página renderizada., Teóricamente, así es. Obviamente, puede renderizar en el lado del servidor. Pero la falta de JS puede ser una preocupación para otras funcionalidades. Se pueden hacer muchas cosas en HTML & CSS, pero desde mi experiencia sería un infierno hacerlo de esta manera en lugar de usar JavaScript.
  • En comparación con la aplicación «tradicional», SPA es menos seguro. Debido al Cross-Site Scripting (XSS), permite a los atacantes inyectar scripts del lado del cliente en la aplicación web por otros usuarios.,
  • La pérdida de memoria en JavaScript puede incluso causar que el sistema potente reduzca la velocidad
  • En este modelo, los botones Atrás y adelante se vuelven disfuncionales.
    actualización 27.09.2017: hoy en día, ya no es un problema.

aplicación de varias páginas

las aplicaciones de varias páginas funcionan de una manera» tradicional». Cada cambio por ejemplo. mostrar los datos o volver a enviar datos a las solicitudes del servidor que representan una nueva página desde el servidor en el navegador. Estas aplicaciones son grandes, más grandes que los SPAs porque tienen que serlo. Debido a la cantidad de contenido, estas aplicaciones tienen muchos niveles de interfaz de usuario., Por suerte, ya no es un problema. Gracias a AJAX, no tenemos que preocuparnos de que las aplicaciones grandes y complejas tengan que transferir una gran cantidad de datos entre el servidor y el navegador. Esa solución mejora y permite actualizar solo partes particulares de la aplicación. Por otro lado, añade más complejidad y es más difícil de desarrollar que una aplicación de una sola página.

Pros de la aplicación de varias páginas:

  • Es el enfoque perfecto para los usuarios que necesitan un mapa visual de dónde ir en la aplicación., Sólido, pocos niveles de navegación del menú es una parte esencial de la aplicación tradicional de varias páginas.
  • Muy bueno y fácil para una correcta gestión SEO. Da mejores oportunidades de posicionarse para diferentes palabras clave, ya que una aplicación puede optimizarse para una palabra clave por página.

contras de la aplicación de varias páginas:

  • no hay opción para usar el mismo backend con aplicaciones móviles.
    actualización 27.09.2017: en ese entonces, cuando estaba escribiendo este artículo, no tenía mucha experiencia con backend y con aplicaciones móviles., Es obvio para mí ahora que puedes usar el mismo backend para ambos. Y me gustaría agradecer a todos los lectores que lo señalaron.
  • El desarrollo de Frontend y backend están estrechamente acoplados.
  • El desarrollo se vuelve bastante complejo. El desarrollador necesita usar frameworks para el lado del cliente y el servidor. Esto se traduce en un mayor tiempo de desarrollo de aplicaciones.

¿SPA o MPA?

antes de implementar una aplicación web, debe considerar el objetivo de la misma., Si sabes que necesitas varias categorías (porque, por ejemplo, tienes una tienda en línea o publicas mucho contenido), usa un sitio de varias páginas. Si está seguro de que su sitio es apropiado para una experiencia pura de una sola página, adelante. Y si te gusta el SPA, pero apenas puede caber todo en una sola página, considere el sitio híbrido en su lugar. Esta es otra forma que no he mencionado antes. Una aplicación híbrida toma lo que es mejor en ambos enfoques y trata de minimizar las desventajas., Es, de hecho, una aplicación de una sola página que utiliza anclajes de URL como páginas sintéticas que permiten más en la navegación del navegador de compilación y la funcionalidad de preferencias. Pero este es el tema de otro artículo.

quizás en el futuro, todos usarán el modelo de aplicación de una sola página (incluida una aplicación híbrida), ya que parece traer muchas ventajas. Muchas aplicaciones en el mercado están migrando hacia este modelo. Sin embargo, como algunos proyectos simplemente no pueden encajar en SPA, el modelo MPA sigue siendo vívido.

publicado originalmente por Paweł Skólski en neoteric.eu/blog el 1 de diciembre de 2016.