2009-11-21 14 views
9

¿Qué crees que es mejor?Plantilla HTML + JSON vs Servidor HTML

uso para el resultado Ajax:

  1. HTML que se ha generado en el servidor
  2. Devolver datos que se utiliza dentro de la plantilla?

Creo que se escapan más para la representación del servidor, lógica más fácil y más compleja, ¡cuando se necesitan muchos datos!

Respuesta

5

Una de las ventajas que veo con 'processing json para crear marcas' en el lado del cliente es la disminución en el tamaño de los datos que se transfieren.

La respuesta a su pregunta dependería del tipo de aplicación que esté desarrollando. Decir si tiene una aplicación donde muestra una lista de mensajes de estado (constantemente actualizados) en una página; enviar el html sería más pesado ya que contendría todo el marcado para diseñar los mensajes de estado. En cambio, un objeto json sería lo suficientemente ligero y se puede procesar fácilmente en el lado del cliente en el marcado requerido.

6

Ambos enfoques tienen sus ventajas y desventajas. Devolver JSON o XML desde el servidor y usar javascript templating para convertir a HTML es más RESTful y tiene la ventaja de separar los datos y la presentación y permitir que múltiples clientes lo usen fácilmente. La desventaja es que es mucho más trabajo hacer en javascript.

Por otro lado, si el servidor devuelve HTML, todo lo que tiene que hacer es inyectarlo en algún lugar del DOM. Lamentablemente, en este caso, el marcado y los datos se combinan y sería más difícil para otros clientes extraer datos sin formatear (imagine, por ejemplo, una aplicación de escritorio o móvil que desee consumir servicios de su sitio).

En mi humilde opinión, si el único consumidor es su sitio, entonces devolver HTML sería el mejor enfoque.

+1

Si el servidor envía HTML con mayor fidelidad, combina lo que tiene en el servidor con lo que tiene en ejecución en el navegador. Si desea hacer más de una cosa con ese resultado, incluso en la misma página, entonces tener el JSON será una gran ganancia. Dicho de otra manera, si está generando HTML dinámico en el servidor, entonces ha agregado otro lugar para mirar cuando necesita solucionar un problema de diseño y Firebug no será tan útil porque tendrá que cambiar lógica del lado del servidor solo para corregir problemas de presentación. – Suppressingfire