2009-06-17 10 views
7

Warum JSON? Ich habe heute einige Tests durchgeführt, und die Anfragezeit für JSON oder eine normale AJAX-Anfrage war dieselbe. In der "normalen Anfrage" habe ich die vollständigen text + html-Tags zurückgegeben, in der JSON-Anfrage habe ich logischerweise einen "json return type" zurückgegeben und den HTML-Code mit clientseitigem JavaScript erstellt.Soll ich JSON oder AJAX für Antwortdaten verwenden?

Ich verstehe es nicht, warum sind die großen Websites (Google Reader usw.) oder sogar kleine Websites mit JSON? Oder verstehe ich nicht, wann ich JSON benutzen soll?

+0

Siehe [Wann Ajax vs Json für Javascript-Ereignisse zu verwenden?] (Http://stackoverflow.com/questions/939211/when-to-use-ajax-vs-json-for-japascript-events) Fast ähnlich. – Kirtan

Antwort

41

Sie sind vielleicht ein wenig verwirrt.

JSON und AJAX sind keine oder keine Wahl.

JSON und XML ist eine Wahl.

JSON und AJAX sind verschieden und weitgehend unabhängig, obwohl AJAX oft JSON verwendet, es kann einfach XML, HTML oder einfachen Text verwenden.

Oder beziehen Sie sich auf das X in AJAX (XML)? Wenn ja, sind die Argumente für JSON im Grunde:

  • JSON hat eine geringere Nutzlast als entsprechende XML; und
  • JSON ist einfacher in Javascript zu behandeln (vergleichen Sie das Auswerten eines JSON-Objekts mit einem XML-Fragment).

Abgesehen davon ist es weitgehend persönliche Vorliebe.

+1

Hinzu kommt, dass JSON hilft Ihnen auch zu debuggen, wenn Sie Firebug verwenden, da Sie einfach die Daten direkt hin und her gesendet –

+0

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

13

JSON ist nur ein Datenaustauschformat. Es beschreibt, auf welche Weise die Daten während der Übertragung dargestellt werden. Sie können Ajax nicht durch JSON ersetzen.

Ajax steht für asynchrones JavaScript und XML, aber wenn Sie JSON verwenden, könnten Sie sagen, dass Sie AJAJ (Asynchronous JavaScript und JSON) verwenden.

Vielleicht denken Sie an die jQuery-Methoden $.getJSON() und $.get()? Der Unterschied ist, dass $.getJSON() automatisch annimmt, dass es sich um JSON-Daten handelt, während $.get() nur die Daten als Nur-Text abruft.

Wenn Sie $.getJSON() verwenden, können Sie auch Daten zwischen Domänen abrufen.

+3

Ich denke gerne, dass AJAX für asynchrones JavaScript und X steht, wobei X ein Endodierungsformat ist. –

+0

-1: JSON beschreibt nicht die Art und Weise, wie Daten überhaupt übertragen werden. JSON beschreibt, wie die Daten bei der Übertragung dargestellt werden. –

+0

(Auch das bisschen über "AJAJ" ist ein kompletter Ablenkungsmanöver, wie niemand jemals diesen Begriff in der Geschichte der Realität verwendet hat.) –

Verwandte Themen