[Opinión] ¿Renderizado del lado del cliente o del lado del servidor?

Me tenía prometido escribir sobre este tema hace ya bastante tiempo, sin embargo no me había animado porque no había tenido la oportunidad de trabajar en proyectos “grandes” donde pudiera ver la ventaja o desventaja de cada una de las técnicas.

Sobre el renderizado del lado servidor podemos decir que es la técnica tradicional que siempre hemos estado trabajando, donde una solicitud al servidor nos regresara CSS, JavaScript, contenido; sin embargo, el renderizado del lado del cliente ha venido ganando fuerza gracias a excelentes Frameworks de JavaScript y CSS que facilitan el proceso de creación y construcción de HTML a partir de un paquete de datos en un formato especifico, como JSON. En esta técnica, realizamos una solicitud al Servidor donde nos regresara una plantilla de la página, CSS y JavaScript, pero esta plantilla no vendrá con el contenido completo desde el servidor, esta vendrá con un JavaScript encargado de realizar las solicitudes al servidor para obtener la información y funciones para trabajar este contenido.

Hasta aquí ya podemos notar que son dos formas muy distintas de hacer las cosas, y como todo en el mundo, no todo aplica para todos los casos, pues pese a que el renderizado del lado del cliente es tentador, tiene sus desventajas, pues se necesita descargar más JavaScript, que deberá además ser procesado CON LOS RECURSOS DE LA MAQUINA CLIENTE y además se hará más de una petición HTTP al servidor para poder recuperar la información que deberá ser tratada. Sin embargo en esta, he notado una “ventaja“, aprovechando las ventajas de la Cache, podemos hacer segundas peticiones más “rápidas” pues necesitaremos menos Ancho de Banda para estas, pues lo único que estaremos solicitando al Servidor será el paquete de datos que queremos trabajar.

Otro aspecto que siempre resalto, es pensar bien en ese caso específico y en lo extremadamente particular que es cada uno de los proyectos de software, no es lo mismo pensar en un proyecto para Web privada donde conoces bases y límites en cuanto a capacidad de computo, ancho de banda, software y demás detalles técnicos de tu cliente, a un proyecto de web publica donde desconocerás siempre este importante factor, y no podrás esperar que todos los clientes que accedan a tu web cuenten con la misma capacidad de computo con la que probaste tu desarrollo.

Como la gran mayoría de los proyectos de software son pensados siempre para ser accedidos de manera pública, y teniendo en cuenta el camino que está tomando el mercado hacia los dispositivos móviles como smartphones y tablets, será un factor importante el tema de la conectividad y la capacidad de computo si nos decidimos irnos por cualquiera de los dos caminos.

En conclusión, como muchas de las conclusiones que siempre obtengo después de un trabajo… es que no se puede hacer global un tema, ni hacer de una técnica, la técnica perfecta que llegue a ser la solución de todos los problemas, siempre será cuestión de análisis y de pensar que nos conviene más y que le conviene más al proyecto de software.

Como nota final, prometo escribir una segunda parte para este artículo, hablando del camino que se está tomando hacia la construcción de APIs y el fuerte incremento en el uso del renderizado del lado del cliente… en este artículo no alcance a hablar muy bien de el 😛

Hasta el próximo post.

Anuncios
[Opinión] ¿Renderizado del lado del cliente o del lado del servidor?

Un comentario en “[Opinión] ¿Renderizado del lado del cliente o del lado del servidor?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s