2010-10-29 11 views
5

Ich frage mich, was ist das beste "Format" für die Daten, die zurück an das Javascript gesendet wird, um zu sein? Wann sollte ich eine JSON-Zeichenfolge oder einfach nur HTML verwenden? Gibt es neben diesen beiden noch andere Möglichkeiten?jQuery/AJAX - Antwortformat

Antwort

6

Es hängt davon ab, was die zurückgesendeten Daten sind und wie Sie sie verwenden möchten.

Vor- und Nachteile:

  • mit JSON-Daten und HTML-Generierung JavaScript mehr Last auf dem Browser und weniger Last auf einem Server, und keine Notwendigkeit, Code Präsentationslogik in die Seite, die das dient legt Daten. Und JSON-Daten sind normalerweise viel kleiner.

  • Die Verwendung von HTML-Daten und direkte Eingabe in die Seite bringt mehr Arbeit auf dem Server, bewirkt, dass die AJAX-Serving-Seite Präsentationslogik enthält. Wenn die Präsentationslogik jedoch bereits in Ihrem serverseitigen Code enthalten ist (direkt oder über die Vorlagensprache) und wenn Sie die Präsentationslogik in die JavaScript-Seite einfügen, müssen Sie sie von Grund auf neu entwickeln. Dies kann ein Vorteil anstelle des Nachteils sein.

Mit anderen Worten, verwenden JSON-Daten iff:

  • Ihre Seite wird andere, dass die JSON-Daten für Zwecke als einmalige Generierung von HTML. DUH.

  • Ihre Seite enthält bereits JavaScript-Logik, um den HTML-Code basierend auf den Daten zu erstellen, oder wenn eine solche Logik erstellt wird, sind die Entwicklungskosten sehr gering. Insbesondere, wenn das Gegenteil der Fall ist (z. B. das Setzen der HTML-Erzeugungslogik-Server-Seite erfordert und erhebliche Entwicklungskosten verursacht).

  • Die Kosten für die Ressourcenentfernung beim Konvertieren der Daten in HTML vom Server auf den Browser sind ein wichtiger Faktor.

  • JSON-Daten sind wesentlich kleiner als das produzierte HTML, was zu einer wesentlichen Reduzierung der übertragenen Daten führt. Dies beschleunigt sowohl die Serverausführung als auch die Netzwerkübertragung. Wir hatten tatsächlich eine 20-fache Beschleunigung einer komplexen baumanzeigenden App, indem wir Baumdaten als json anstelle von bereits erzeugtem HTML-Code übermittelten.

  • Die URL, die die Antwort erzeugt, kann als Dienst für andere Zwecke als diese eine Seite wiederverwendet werden, wenn die anderen möglichen/tatsächlichen Konsumenten den für diese bestimmte Seite generierten HTML-Code nicht 100% wiederverwenden könnten .

+0

danke für die sehr detaillierte Antwort :) – Alex

2

Möchten Sie mit den Daten in JavaScript arbeiten und dann das DOM aus diesen Daten erstellen? Verwenden Sie JSON-Zeichenfolgen.

Möchten Sie einfach etwas auf der Seite in einem Platzhalter ohne Logik ablegen? Verwenden Sie einfaches HTML.

1

JSON wird fast immer bevorzugt, vor allem, wenn Sie irgendeine Art von Fehlerbehandlung durchführen müssen. Wenn Sie nicht möchten, dass vorformatierter HTML-Code im DOM zurückgegeben wird, reicht die Rückgabe von einfachem HTML-Code aus.

+1

Ich würde kaum sagen, dass JSON fast immer bevorzugt wird. Meistens weiß meine serverseitige Anwendung, wie das erstellte Markup besser formatiert werden kann.Der Server kann auch eine endgültige Markierung schneller als der Client erzeugen, was zu einer wahrgenommenen Leistungsverbesserung für den Client führt. –

Verwandte Themen