Was ist besser in AJAX-Anfrage, Antwort mit fertigen HTML oder Antwort mit nur Daten und schreiben HTML mit JavaScript, und dieses JavaScript wird eine vordefinierte HTML-Vorlage verwenden, um die kommenden Daten hinein und zeigen auf der Seite.
Wenn Sie den HTML-Code auf dem Server erstellen und an die Seite senden, wird der clientseitige JS-Code verringert, die Antwortgröße wird jedoch erhöht.
Durch das Senden der Daten an die Clientseite wird die Antwortgröße verringert, der JS-Code wird jedoch erhöht.
Was ist besser und am meisten benutzt?
Ich denke, die richtige Lösung hängt stark vom Kontext ab. Es kann eine richtige Antwort für eine bestimmte Situation geben, aber es gibt keine Antwort für alle. Im Allgemeinen, wenn ich eine Teilansicht verwende, die über AJAX ersetzt wird, gebe ich html zurück. Wenn ich eine Aktion für einen kleinen Teil von etwas ausführe, verwende ich JSON. Ich werde wahrscheinlich JSON eher verwenden, da es mehr Situationen gibt, in denen es passt, aber ich versuche, die beste Lösung für das vorliegende Problem auszuwählen. Ich benutze jedoch ASP.NET MVC. Andere Frameworks haben zweifellos unterschiedliche charakteristische Lösungen.
Ich habe beide benutzt gesehen. Zusätzlich zu den im OP aufgeführten Kompromissen würde ich hinzufügen:
Larry
Ich werde hier extrem pragmatisch sein:
Es hängt von der Menge und der Komplexität des neuen Markups ab.
Wenn Sie ein komplexes Stück HTML zurückgeben müssen, ist es immer besser, es auf der Serverseite zu schreiben und es als Daten zurückzugeben, es ist auch einfacher zu pflegen.
Der Aufbau von komplexem HTML auf der Client-Seite ist normalerweise kryptisch, selbst wenn moderne js-Bibliotheken verwendet werden.
Auf der anderen Seite, wenn Ihr Extra-Markup klein ist, können Sie es mit js erstellen. Ich habe noch nie etwas mit ASP.NET AJAX gemacht, aber eine asp.net-Seite, eine rails-Ansicht oder eine JSP mit nur einem kleinen Fragment wie <p class='info'>Row Updated</p>
zu haben, ist verwirrend.
Lassen Sie den Code mit Ihnen sprechen, wenn Sie gegen JavaScript-Code kämpfen, um Markup auf der Client-Seite zu erstellen, sollte es vielleicht auf der Server-Seite gehen.
Schließlich: Machen Sie sich nicht zu viele Gedanken über die Größe von HMTL gegenüber JSON, und wenn Sie dies tun, benchmarken die Anfragen, um zu sehen, ob Unterschied ist nicht zu vernachlässigen.
Ich glaube, die gebräuchlichere Methode besteht darin, die Masse des Markups (HTML / CSS) über die synchrone Navigation an die Site weiterzuleiten und die AJAX-Anfrage / Antwort so schlank wie möglich zu halten [Zitat erforderlich].
Zugegebenermaßen ist es sehr selten, dass HTML als AJAX-Antwort zurückgegeben wird. In der Regel wird es eine JSON-Antwort sein, da es am einfachsten ist, eval()
mit JS zu erstellen.
Da die meisten Markup- und Styling-Klassen ohnehin benötigt werden und auch von "statischen" Inhalten genutzt werden können, bleibt Ihnen die Möglichkeit, den AJAX klein und ordentlich zu halten.
Tags und Links javascript asp.net ajax