Estoy desarrollando una aplicación web y actualmente he escrito todo el sitio web en html / js / css y en el backend tengo servlets que alojan algunos servicios RESTFUL. Toda la lógica de presentación se realiza obteniendo objetos json y modificando la vista a través de javascript.
La aplicación es esencialmente un motor de búsqueda, pero tendrá cuentas de usuario con diferentes roles.
He estado investigando algunos marcos como Play y Spring. Soy bastante nuevo en el desarrollo web, así que me preguntaba qué ventajas proporcionaría el procesamiento de páginas del lado del servidor.
¿Es: velocidad? ¿Desarrollo y flujo de trabajo más fáciles? ¿Acceso a bibliotecas existentes? ¿Más? Todas las anteriores?
javascript
web-applications
frameworks
usuario1303881
fuente
fuente
Respuestas:
Representación HTML del lado del servidor:
* Cuando los requisitos de IU se ajustan bien al marco.
Representación HTML del lado del cliente:
** Cuando la interfaz de usuario es en gran medida personalizada, con interacciones más interesantes. Además, encuentro que la codificación en el navegador con código interpretado es notablemente más rápida que esperar compilaciones y reinicios del servidor.
También puede considerar un modelo híbrido con una implementación de back-end ligera que utiliza un sistema de plantillas front-end / back-end como el bigote .
fuente
generación HTML del lado del servidor:
generación HTML del lado del cliente:
Tenga en cuenta que la generación del lado del cliente es la forma en que se realiza en el caso de sitios móviles exitosos, ya que aparentemente es mucho más eficiente con los navegadores modernos (los navegadores basados en WebKit tienen alrededor del 70-80% del mercado móvil).
LinkedIn tiene un artículo sobre las ventajas del enfoque del lado del cliente utilizando dust.js como ejemplo: "Dejar JSP en el polvo: mover LinkedIn a las plantillas del lado del cliente dust.js"
fuente
Depende de cuáles sean sus requisitos. Si necesita una solución de alto rendimiento y baja latencia que depende de muchas tareas pequeñas, puede optar por una estructura similar a la que describe. Sin embargo, las soluciones más comunes, en Java, PHP y C #, no tienen esto por defecto.
La mayoría de las aplicaciones web dependen en gran medida de las bases de datos, la mayoría de ellas tanto que las páginas no se pueden procesar sin al menos una llamada. Obviamente, no desea exponer su base de datos públicamente, por varias razones:
Entonces, cuando necesita una base de datos, utiliza lenguajes que funcionan bien con ellos, como Java, C #, PHP, etc. La forma más fácil de generar una página es la siguiente: utiliza un lenguaje de plantillas (más conocido como PHP, pero JSP y ASP son otros dos lenguajes muy comunes) para construir la página. El lenguaje proporciona construcciones que llaman a otros módulos. En PHP, esto es comúnmente en la página o en otro archivo PHP, utilizando el patrón MVC. En JSP utiliza scriptlets o el lenguaje de expresión JSP. Estos otros módulos pueden hacer el trabajo pesado de conectarse a la base de datos, realizar la lógica y devolver valores a su capa de vista. El resultado final es una página HTML generada, representada en el servidor y enviada al cliente.
Cuando su base de datos está en la misma red que su procesador de página, también obtiene un mejor rendimiento. El cliente solo tiene que hacer una solicitud y recibe una página; puede que tenga que hacer entre 10 y 15 solicitudes de base de datos antes de tener toda la información que necesita el usuario. Una latencia de milisegundos en su red sería de segundos a minutos si el cliente tuviera que hacerlos todos.
Cuando los sistemas crecen, la separación de las preocupaciones y las competencias básicas se vuelve crucial. HTML es bueno para mostrar. Javascript es bueno para contenido dinámico. SQL es excelente para consultar una base de datos, y otros lenguajes son buenos para la lógica empresarial. Nuestro trabajo como desarrolladores es utilizar todas las herramientas disponibles para construir un sistema que se pueda mantener. La facilidad de desarrollo es una gran parte de un buen sistema. En mi opinión, es casi tan importante como el rendimiento y la usabilidad. Los grandes sistemas evolucionan con el tiempo. Los sistemas pobres se escribieron mal desde el principio y nunca se mejoraron.
fuente
you can't write SQL in Javascript
¡¿De Verdad?! ¿Alguna vez has mirado a preguntas StackOverflow para Javascript? Me rogaría diferir desafortunadamente. De acuerdo, es lo peor que podrías hacer en el código del cliente, pero ...Los clientes móviles suelen tener limitaciones de potencia, ancho de banda y memoria. Probablemente sea mejor renderizar páginas para ellos en el servidor.
Para los clientes de escritorio, puede considerar enviar js + json para representar la página en el cliente, hacerla actualizable dinámicamente, etc.
fuente
Una gran ventaja de la representación del lado del servidor es la accesibilidad: las aplicaciones basadas en JavaScript siguen siendo un gran problema para las personas que no ven. Eso y hay un ciego llamado "googlebot" a quien querrás atender. Tampoco hace javascript tan bien.
fuente