/ / Analyse JSON sur le serveur par rapport à l'analyse du côté client - JSON, performance, node.js, analyse

Analyse JSON sur le serveur et analyse côté client - JSON, performance, node.js, analyse

Je suis en train d’écrire une application de nœud et je dois traiter un tas de données cartographiques JSON. Pour que les données apparaissent correctement, elles doivent être analysées.

Maintenant, je me demande s’il est préférable d’analyser sur le serveur (et d’envoyer cet objet de données analysé au client) ou d’envoyer JSON pur et de l’analyser côté client après l’appel ajax.

Ma plus grande préoccupation avec le fait de le faire sur le serveur est que plusieurs requêtes simultanées pourraient tout ralentir pour un tas de gens.

Option de code côté serveur:

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 de code côté client:

$.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
}
});

Réponses:

4 pour la réponse № 1

Cela n'a pas vraiment d'importance. Comparé à un accès à une base de données (ou à tout ce qui implique une activité de réseau ou de disque), la sérialisation / désérialisation de JSON est extrêmement rapide. Ne sur-optimisez pas les choses qui ne nécessitent pas d’optimisation.

Toutefois, si vous souhaitez transmettre les données au client sans aucun traitement côté serveur et Si vous recevez déjà une chaîne JSON, il serait inutile de la désérialiser sur le serveur, puis de la sérialiser à nouveau pour la transmettre au client, qui devra à nouveau la désérialiser.


2 pour la réponse № 2

S'il s'agit d'un service que vous avez l'intention de maintenir,Si vous ne le faites pas et que vous vous en tenez à cela pour un besoin à court terme ou que vous êtes tactique pour quelque raison que ce soit, alors je l’analyserai simplement sur le client. . Quoi qu’il en soit, j’espère que l’impact de l’analyse / sérialisation JSON sera négligeable ... c’est pourquoi j’ai pris en compte d’autres facteurs lors de la prise de décision.

Si vous allez avec l'analyse côté serveur, vous serez laissébien placé pour un certain nombre de raisons. Tout d’abord, vous pourrez fournir un meilleur contrat pour ces données (par exemple, décomposer les données en ensembles cohérents de responsabilités. Masquer les détails qui fuient / laids. Réduire et ajuster la taille de la charge utile à ce qui a du sens pour vous. Deuxièmement, si vous choisissez d’utiliser un autre fournisseur de données ou si le fournisseur de données sous-jacent change ou si vous souhaitez modifier l’un des détails de la mise en oeuvre (votre algorithme d’analyse, par exemple), vous pouvez protéger ces décisions du ou des clients. Les options sur le serveur pour la mise à l'échelle ou l'optimisation des performances du service sont nombreuses (par exemple, la mise en cache, l'optimisation de l'analyse, des machines supplémentaires, etc.) et ces détails d'implémentation peuvent également être masqués aux consommateurs.

Dans l’ensemble, je fournirais un bon ensemble de contratset exécutez l'analyse côté serveur afin de masquer les détails de ma mise en œuvre, à moins que des circonstances (p. ex. un échéancier serré, il s'agit d'un prototype) n'indiquent le contraire.