Splitting Delimited String vs JSON Parsing Efficiency en JavaScript

Je dois récupérer une grande quantité de données (coordonnées plus une valeur supplémentaire) via AJAX. Le format des données est:

-72.781;;6,-68.811;;8 

Notez que deux délimiteurs différents sont utilisés: ;; Et,.

Dois-je simplement renvoyer une chaîne délimitée et utiliser String.split() (deux fois) ou est-il préférable de renvoyer une chaîne JSON et d'utiliser JSON.parse() pour décompresser mes données? Quel est le pire et le meilleur de chaque méthode?

Même si les données sont vraiment assez grandes, les chances d'être une différence de performance notable dans le monde réel sont assez faibles (le temps de transfert de données atteindra le temps de décodage). Donc, en supprimant un problème de performance réel, il est préférable de se concentrer sur ce qui est le mieux d'un point de vue de clarté de code.

Si les données sont homogènes (vous faites face à chaque coordonnée en grande partie de la même façon), il n'y a rien de mal avec l'approche String#split .

Si vous devez vous référer individuellement aux coordonnées de votre code, il y aurait un argument pour leur attribuer les noms propres, ce qui suggérerait d'utiliser JSON. J'ai tendance à me pencher vers la clarté, alors je me pencherais probablement vers JSON.

Une autre chose à considérer est la taille sur le fil. Si vous avez seulement besoin de supporter de bonnes connexions réseau gracieuses, cela n'a probablement pas d'importance, mais comme les clés JSON sont réitérées pour chaque objet, la taille pourrait être considérablement plus grande. Cela pourrait prétendre à la compression de JSON .

J'ai créé un test de performance qui décrit votre problème.
Bien que cela dépend de la mise en œuvre du navigateur, dans de nombreux cas, comme les résultats montrent- split seraient beaucoup plus rapides, parce que JSON.parse fait beaucoup d'autres choses en arrière-plan, mais vous auriez besoin des données fournies pour une analyse simple: dans le Test, j'ai ajouté un cas où vous utilisez split (parmi replace ) afin d'analyser une matrice json déjà formatée et, le résultat parle d'elle-même.

Dans l'ensemble, je n'irais pas avec un script de quelques millesecondes plus rapide mais n secondes plus difficile à lire et à entretenir.