2009-06-17 16 views
7

¿Por qué JSON? He hecho algunas pruebas hoy, y el tiempo de solicitud tanto para JSON como para una solicitud normal de AJAX fue el mismo. En la "solicitud normal", he devuelto las etiquetas de texto + html completas, en la solicitud JSON, logré devolver un "tipo de devolución json" y he creado el HTML con JavaScript del lado del cliente.¿Debo usar JSON o AJAX para los datos de respuesta?

No lo entiendo, ¿por qué los sitios grandes (Google Reader, etc.) o incluso los sitios pequeños que usan JSON? ¿O no entiendo cuándo debo usar JSON?

+0

Ver [¿Cuándo usar Ajax vs Json para eventos de Javascript?] (Http://stackoverflow.com/questions/939211/when-to-use-ajax-vs-json-for-javascript-events) Casi similar. – Kirtan

Respuesta

41

Quizás esté un poco confundido.

JSON y AJAX no son una opción cualquiera.

JSON y XML es una elección.

JSON y AJAX son distintos y en gran parte no están relacionados, aunque AJAX a menudo usa JSON, puede usar fácilmente XML, HTML o texto sin formato.

¿O se está refiriendo a la X en AJAX (XML)? Si es así, los argumentos para JSON son básicamente:

  • JSON tiene una carga más pequeña que XML equivalente; y
  • JSON es más fácil de tratar en Javascript (compare la evaluación de un objeto JSON para recorrer un fragmento XML).

Aparte de eso, es en gran parte preferencia personal.

+1

Agregue a eso, json también lo ayuda a depurar si está usando Firebug, ya que solo puede leer los datos enviados de ida y vuelta directamente –

+0

http://izlooite.blogspot.com/2010/05/ajax-or-ajax-xml -vs-json.html –

13

JSON es solo un formato de intercambio de datos. Describe de qué manera se representan los datos durante la transmisión. No puedes reemplazar Ajax con JSON.

Ajax son las siglas de Asynchronous JavaScript and XML, pero cuando usa JSON puede decir que está usando AJAJ (Asynchronous JavaScript and JSON).

Quizás esté pensando en los métodos de jQuery $.getJSON() y $.get()?

La diferencia es que $.getJSON() asume automáticamente que se trata de datos JSON, mientras que $.get() simplemente buscará los datos como texto sin formato.

Al usar $.getJSON() también puede buscar datos entre dominios.

+3

Me gusta pensar en AJAX como en Asynchronous JavaScript and X, donde X es un formato endoding. –

+0

-1: JSON no describe la forma en que se transfieren los datos de ninguna manera. JSON describe la forma en que se representan los datos cuando se transfieren. –

+0

(Además, el bit sobre "AJAJ" es una completa pista falsa, ya que nadie ha usado este término en la historia de la realidad.) –

Cuestiones relacionadas