/ / JSON-Parsing auf Server- oder Parsing-Clientseite - json, performance, node.js, parsing

JSON Parsing auf Server vs Parsing Client-Seite - JSON, Performance, node.js, Parsing

Ich schreibe eine Node-App und muss eine Reihe von JSON-Kartendaten verwalten. Damit die Daten ordnungsgemäß angezeigt werden, muss sie analysiert werden.

Jetzt frage ich mich, ob es besser ist, auf dem Server zu analysieren (und dieses analysierte Datenobjekt an den Client zu senden) oder reinen JSON zu senden und es nach dem Ajax-Aufruf auf der Clientseite analysieren zu lassen.

Meine größte Sorge bei der Ausführung auf dem Server ist, dass viele gleichzeitige Abfragen für eine ganze Reihe von Personen alles verlangsamen können.

Serverseitige Codeoption:

var data = [];
db.simple_query([{ask: COMPLEX QUERY TO RETURN DATA AS JSON }], function(err, geo_data){
if (err) {
callback(err);
}
else{
data.push(JSON.parse(geo_data.rows[0].row_to_json));
callback();
}
});

Option für clientseitigen Code:

$.ajax({
type: "GET",
url: url,
success: function(data){
if (data){
$.each(data, function(i, geo){
L.geoJson(JSON.parse(geo)).addTo(map);
});
}
},
error: function(data){
//Error Handling
}
});

Antworten:

4 für die Antwort № 1

Es ist wirklich egal. Im Vergleich zu einem Datenbankzugriff (oder im Grunde genommen zu allem, was Netzwerk- oder Festplattenaktivität umfasst) ist das Serialisieren / Deserialisieren von JSON unglaublich schnell. Überoptimieren Sie nicht Dinge, die nicht optimiert werden müssen.

Wenn Sie die Daten jedoch ohne serverseitige Verarbeitung an den Client übergeben möchten und Wenn Sie bereits einen JSON-String erhalten, ist es sinnlos, ihn auf dem Server zu deserialisieren und dann erneut zu serialisieren, um ihn an den Client zu übertragen, der ihn erneut deserialisieren muss.


2 für die Antwort № 2

Wenn dies ein Service ist, den Sie pflegen möchten,Skalieren oder Vorwärtsbewegung unterstützen, dann würde ich wahrscheinlich auf dem Server parsen. Wenn nicht und Sie dies nur aus einem kurzfristigen Grund oder aus einem taktischen Grund heraus jammen, dann würde ich es einfach auf dem Client analysieren . In beiden Fällen erwarte ich, dass die Auswirkungen der JSON-Analyse / Serialisierung vernachlässigbar sind. Deshalb würde ich bei der Entscheidung andere Faktoren berücksichtigen.

Wenn Sie mit Server-Side-Parsing gehen, werden Sie verlassenaus mehreren Gründen in einer guten Position. Erstens können Sie bessere Verträge für diese Daten erstellen (z. B. die Daten in zusammenhängende Verantwortungsbereiche aufteilen. Undichte / hässliche Details verbergen. Die Größe der Nutzlast reduzieren und auf das beschränken, was für Sie sinnvoll ist Wenn Sie einen anderen Datenprovider verwenden oder den zugrunde liegenden Datenprovider ändern möchten oder wenn Sie Implementierungsdetails (z. B. Ihren Parsing-Algorithmus) ändern möchten, können Sie diese Entscheidungen vor den Kunden schützen Auf dem Server stehen zahlreiche Optionen zur Skalierung oder Leistungsoptimierung des Dienstes zur Verfügung (z. B. Caching, Parsing-Optimierung, zusätzliche Computer usw.). Diese Implementierungsdetails können auch den Verbrauchern verborgen bleiben.

Alles in allem würde ich einen guten Satz Verträge zur Verfügung stellenund die Parsing-Serverseite ausführen, um meine Implementierungsdetails zu verbergen, sofern die Umstände (z. B. kurze Zeitspanne, dies ist ein Prototyp) nichts anderes vorschreiben.