Ich versuche, einige Details eines Artikels in einigen bereits definierten div zu öffnen. Ich habe 2 Möglichkeiten, das zu tun.Best Practice für das Rendern von Daten in HTML mit Ajax
Hinweis: Ich verwende Python/Django als Backend und Frontend jquery in
I. Mein erster Weg
Views.py
def get_item_data(id):
obj = MyClass.objects.get(pk=id)
html = """
<div>All Details Here, 1. {0}, 2. {1}</div>
""".format(str(obj.id), str(obj.name))
return HttpResponse(html)
myapp.js
$('#myid').on('click', function(){
$.ajax({
type: "GET",
url: GET_DATA,
data: dataString,
success: function(res) {
$('#addl_container').html(res);
}
});
});
II. Der andere Weg
Views.py
def get_item_data(id):
obj = MyClass.objects.filter(pk=id).values()
return HttpResponse(simplejson.dumps(obj))
myapp.js
$('#myid').on('click', function(){
$.ajax({
type: "GET",
url: GET_DATA,
data: dataString,
success: function(res) {
$('#addl_container').html(
"<div>All Details Here, 1. "+ res.id +", 2. "+ res.name + "</div>"
);
}
});
});
Beide der Prozess funktioniert. Ich dachte, das Erstellen des HTML im Voraus und das Laden ist möglicherweise keine gute Wahl, da wir Python-Code verwenden, um das HTML zu erstellen und dann zu laden. Es wird auch nicht funktionieren, wenn ich versuche, von einer anderen Anwendung auf dieselbe URL zuzugreifen. Das Erstellen des HTML aus jQuery durch Extrahieren von Daten aus der JSON-Antwort scheint eine gute Lösung zu sein, aber manchmal, wenn die Daten riesig sind, benötigt es mehr RAM am Ende des Benutzers, was das System verlangsamt.
Ich bin verwirrt, welche zu verwenden, bitte vorschlagen eine bessere Lösung aus diesen beiden. Schlagen Sie auch andere Lösung besser als diese vor?
Vielen Dank im Voraus.
Meiner Meinung nach hängt es davon ab, wie viel HTML Sie und wie oft rendern. Wenn Sie zum Beispiel nur eine kleine "" rendern müssen, dann ist die Art, wie Sie es tun, in Ordnung. Aber wenn Sie etwas großen HTML rendern müssten, dann wäre es besser, eine Template-Engine wie [Handlebars] (http://handlebarsjs.com/) –
Javascript = Client-Verarbeitung zu verwenden. PHP = Server-Verarbeitung. Wenn Sie einen anständigen Server haben, wird der zweite für den Benutzer besser sein. Viele Benutzer haben immer noch relativ alte PCs oder, was die Arbeit betrifft, was man als unterentwickelte PCs ansehen könnte, besonders im Vergleich mit einem Entwickler-PC. Wenn zu viel auf dem Client ausgeführt wird, kann Performance/UX beendet werden. –
Ein anderer Weg, wenn Sie einen größeren HTML haben, dann können Sie Vorlage in 'get_item_data' definieren und diese Vorlage zurückgeben –