¿Cuándo debo usar la Aplicación de página única (SPA) y cuándo debo usar la Aplicación de página múltiple (MPA)?

Las AMP son más complejas y más difíciles de desarrollar que las ZEPA. Funcionan de manera “tradicional”: cada cambio (como mostrar los datos o enviarlos de vuelta al servidor) requiere que se muestre una nueva página del servidor en el navegador. Por otro lado, es mejor para SEO. La navegación también es mejor en múltiples páginas, ya que obtienes un menú sólido de varios niveles. El principal problema de las AMP es que no puede usar el mismo backend con aplicaciones móviles. Como estas aplicaciones son más complejas, su desarrollo también lleva más tiempo que el desarrollo de los SPA.

Los SPA funcionan dentro de un navegador y no requieren la recarga de la página durante el uso. Los SPA son más rápidos de desarrollar y, por lo tanto, más baratos. Puede usar el mismo código de fondo para la versión de escritorio y móvil de la aplicación. También son más ligeros y rápidos que las AMP. De hecho, se trata de servir un UX excepcional al tratar de imitar un entorno “natural” en el navegador, sin recargar páginas, sin tiempo de espera adicional. incluso tienen tasas de conversión más altas en comparación con sitios web más grandes de varias páginas. Según 37signals, una sola página de aterrizaje larga conduce a un 37.5 por ciento más de registros, en comparación con una versión de varias páginas. Pero, por supuesto, también tiene sus lados oscuros: es menos seguro que el MPA y requiere que JavaScript esté presente y habilitado todo el tiempo.

Como puede ver, ambos tienen sus pros y sus contras. ¿Cómo elegir, entonces? Opto por el enfoque de contenido primero . Planifique todas las funciones que desea tener en su aplicación, toda la información y los gráficos que le gustaría poner allí. Si puede caber en una aplicación de una sola página sin sobrecargarla, quédese con ella. Si ve que se está volviendo complejo desde el principio y que necesita varias categorías, use un sitio de varias páginas.

Hice todo lo posible para responderle, pero como persona no completamente técnica, es posible que haya omitido algunos pros y contras importantes para cada tipo de aplicación. Si desea obtener una respuesta más completa, le recomiendo que lea estos artículos:

Aplicación de una página versus aplicación de múltiples páginas (Neotérico)

Diseño de interfaz de usuario de una sola página frente a varias páginas: Pros y contras (UXPin)

Las desventajas de las aplicaciones de una sola página (Adam Silver)

Discucción de desbordamiento de pila sobre las ventajas y desventajas de una aplicación de página única

Otra consideración es que los SPA son más efectivos (UX más rápido, más fluido), a expensas de un tiempo de carga inicial más lento. Si está desarrollando un sitio web que tiene como objetivo atraer tráfico de contenido específico de los motores de búsqueda y enlaces directos y no se espera que los usuarios naveguen por el sitio web después de haber accedido al contenido específico que solicitaron, entonces la penalización del tiempo de carga de los SPA es desventajosa. Por lo tanto, los SPA probablemente no sean adecuados para foros, blogs, sitios de noticias, servicios de agregación / curación de contenido público.

Los SPA también son arquitectónicamente más complejos y los errores a veces son más difíciles de solucionar. Si está ejecutando un cronograma de desarrollo de tiempo crítico, puede ser más rápido trabajar sin un marco (a menos, por supuesto, que tenga experiencia).

Finalmente, todavía existe un peligro real de que algunos clientes no admitan o tengan JavaScript deshabilitado. Las aplicaciones de una sola página no permiten un retroceso semi-funcional, mientras que eso sería posible con una aplicación de múltiples páginas. Por supuesto, restringiría UX, pero al menos el sitio web sería accesible.

Dicho esto, no creo en desarrollar para el mínimo común denominador. Creo que los desarrolladores deberían esforzarse por utilizar las tecnologías de su elección en un intento de promover su adopción. Aún así, puede ser crítico para su aplicación que sea accesible para el segmento de mercado más grande posible.

En algunos casos, sin duda es mejor hacer una aplicación de varias páginas.

Muchas personas en el mundo lo han hecho, lo están haciendo y lo harán en el futuro aplicaciones de varias páginas en Ruby on Rails, Phoenix, Express, Django, Flask, ASP.NET, etc. Este es un enfoque bastante estable para medios y serios aplicaciones con lógica empresarial avanzada.

Pero los desarrolladores constantemente tienen dolor de cabeza cuando intentan organizar una gran aplicación para cliente ligero. Las colisiones entre los scripts y el infierno de devolución de llamada hacen que las personas busquen refugio en los nuevos “marcos” publicitados, pero requieren una organización más compleja del código de la aplicación y generan un nuevo grupo de problemas inherentes al cliente pesado.

Por el momento, hay un excelente marco JavaScript Normas.js para crear un cliente ligero sin dolor de cabeza, que se utiliza con éxito en la producción: https://github.com/evrone/normas

No abandone la representación del servidor en 202x, es un gran enfoque para la creación de un MVP o una versión completa.

SPA, puede hacer casi todo lo que hace MPA Y también se carga mucho más rápido. Todos los archivos se obtienen una vez, y luego todo el contenido se proporciona a pedido mediante enrutamiento y solicitudes http / s a ​​las API.

Si desea aprender SPA, que es la tendencia sexy actual en el desarrollo web … Le recomiendo que vaya a Code School y consulte su tutorial angular gratuito. A partir de ahí, puede ver / leer tutoriales y la documentación oficial. Se vuelve complicado ya que su aplicación requiere más funcionalidad y administración de la interfaz de usuario, por lo que no será fácil ya que la depuración también es difícil en JS.

Sin embargo, recomiendo comenzar ahora y tómese su tiempo. Github también tiene muchos proyectos de muestra bien documentados. Buena suerte.

Es una tarea muy difícil y difícil hacer la optimización SEO de la aplicación de página única con contenido cargado por ajax. Si la esencia principal de su aplicación es la funcionalidad, entonces podría usar libremente la aplicación de una sola página, pero si desea publicar contenido, es mejor desarrollarlo en varias páginas.

No te preocupes Tu gerente de producto te lo dirá.

Pero en serio, MPA se está volviendo cojo. Proporciona muy mala experiencia de usuario. Y no es difícil crear un SPA con marcos modernos como Angularjs

More Interesting

¿Cuáles son los ejemplos de plataformas web que son curadas o enfocadas por el administrador del grupo, en lugar de dirigirse a usuarios individuales (los administradores agregan los usuarios, en lugar de los usuarios individuales que se registran)?

¿Puedo obtener aplicaciones web ficticias para la prueba de selenio?

¿Cuántas secuencias simultáneas puede admitir el complemento Wowza Transcoder por núcleo?

¿Hay alguna competencia entre Quora y Facebook? ¿Por qué?

¿Según qué criterios técnicos elige un marco de back-end web en lugar de otro?

¿Cuál es la solicitud de publicación en una aplicación web?

¿Me puede dar ejemplos de aplicaciones web basadas en datos?

¿En qué se diferencia una aplicación web de una página web?

¿Qué sitios tienen sistemas de etiquetado que han mantenido su legitimidad a lo largo del tiempo?

Con apertura en multisitio. ¿Cómo trabajar el generador de secuencia en el campo "número" en el objeto "cuenta.factura"?

¿Son legales las aplicaciones como Instapaper y Readability?

¿Cuáles son los aspectos económicos de una barra de herramientas del navegador web?

¿Por qué se elimina el enlace de datos bidireccional en Angular 2? Si Angular 2.0 solo admite el enlace de datos unidireccional, ¿no fue el enlace bidireccional una característica importante de Angular 1? ¿Esto implica que de alguna manera la unión bidireccional en Angular 1 no fue una característica útil?

¿Es buena idea tener una base de datos SQLite en la aplicación Flask similar a Trulia?

¿Las aplicaciones web que ocultan o cambian el reproductor de YouTube (como reembed.com) infringen los Términos y condiciones de YouTube?