2010-10-29 20 views
5

Me preguntaba ¿cuál es el mejor "formato" para los datos que se envían de regreso a la javascript? ¿Cuándo debería usar una cadena JSON o simplemente HTML? ¿Hay otras opciones además de estas dos?jQuery/AJAX - formato de respuesta

Respuesta

6

Depende de la información que se envíe de vuelta y cómo planea usarla.

pros y contras:

  • Utilizando los datos JSON y la generación de HTML JavaScript pone más carga en el navegador y menos carga en el servidor, además no hay necesidad de la lógica de presentación código en la página que sirve a la datos. Y los datos JSON suelen ser mucho más pequeños.

  • Usar datos HTML e inyectar directamente en la página pone más trabajo en el servidor, hace que la página que sirve AJAX contenga la lógica de presentación. Sin embargo, si la lógica de presentación ya está contenida en su código del lado del servidor (directamente oa través del lenguaje de plantillas) y colocar dicha lógica de presentación en el lado de JavaScript necesitaría desarrollarla desde cero, puede ser un beneficio en lugar de ser un inconveniente.

En otras palabras, si y sólo si utiliza JSON datos:

  • Su página utilizará esos datos JSON para fines distintos de la generación de una sola vez de HTML. DUH.

  • Su página ya contiene la lógica de JavaScript para construir el código HTML basado en los datos, o si la creación de dicha lógica es muy fácil de coste de desarrollo. Especialmente si lo opuesto es cierto (por ejemplo, poner la lógica de generación de HTML en el lado del servidor necesita hacerse y presenta un costo de desarrollo significativo).

  • El gasto de recursos de descarga de convertir los datos en HTML desde el servidor al navegador es una consideración importante.

  • Los datos JSON son significativamente más pequeños que el HTML producido, lo que resulta en una MAYOR reducción de los datos transmitidos. Esto acelera tanto la ejecución del servidor como la transmisión de la red. De hecho, tuvimos una aceleración de 20x de una aplicación de visualización de árbol compleja al transmitir datos de árbol como json en lugar de código HTML ya generado.

  • La URL que produce la respuesta se puede reutilizar como un servicio para fines distintos a esta página, si los otros consumidores posibles/reales no podrían reutilizar al 100% el código HTML generado para esta página específica .

+0

gracias por la respuesta muy detallada :) – Alex

2

¿Desea trabajar con los datos en JavaScript y luego generar el DOM a partir de esos datos? Use cadenas JSON.

¿Simplemente desea descargar algo en la página en un marcador de posición sin ninguna lógica? Use HTML simple.

1

json es casi siempre preferido, especialmente si necesita realizar algún tipo de manejo de errores. Si no lo hace y solo quiere devolver el HTML preformateado para colocarlo en el DOM, entonces devolver el HTML simple será suficiente.

+1

No me gustaría decir que JSON es casi siempre preferido. La mayoría de las veces, mi aplicación del lado del servidor sabe cómo formatear mejor el marcado que se produce.El servidor también puede producir un marcado final más rápido que el cliente, lo que lleva a una mejora en el rendimiento percibido del cliente. –

Cuestiones relacionadas