Ce matin, j'ai essayé d'utiliser les fonctions de décodage JSON d'ExtJS contre 0,75 Mo de données, et il s'est écrasé sur FF3. Je me demande quel est le JSON le plus susceptible d'être décodé du côté client? Cela pourrait utiliser ExtJS, jQuery, d'autres cadres Javascript ou tout décodage intégré que Javascript peut lui-même offrir.Quel est le JSON que vous pouvez raisonnablement espérer décoder du côté client
Répondre
Comme il s'est avéré que Firebug était le coupable. Lorsqu'il est désactivé, Ext.util.JSON.decode et la fonction eval() native de Javascript retournent en 0.15 secondes.
Avec Firebug sur si eval revient en 0.3 alors que j'ai finalement obtenu Ext.util.JSON.decode pour finir avec Firebug sur et il a fallu 60 + secondes !! J'ai vraiment besoin de Firebug pendant le développement.
J'ai eu ce problème avec l'analyseur JSON de YUI, j'ai donc essayé l'analyseur JSON de Prototype pour les grands ensembles de données et j'ai trouvé que cela fonctionnait beaucoup mieux. J'ai également constaté qu'une fois que les ensembles de données atteignaient une certaine taille, ils prenaient trop de temps à analyser et le navigateur émettait un message demandant si vous vouliez terminer le travail. Donc, pour les grands ensembles de données, il pourrait être utile de les diviser en plus petits morceaux plus faciles à digérer.
Merci, je serai intéressé si quelqu'un a des données solides et rapides. Comme vous le dites, séparer les données est une solution. L'évaluation est aussi, au moins à court terme; eval termine en 0.3 secondes sur mes 0.75 MB de données. –
@George: l'envoi de plus petites portions de données sera plus rapide en raison du temps de transmission du fil. – voyager
Cela dépend en grande partie du navigateur client, car Chrome n'aurait pas de problème avec quelque chose d'aussi grand, alors que IE6 s'arrêterait probablement sur place. Je recommande que plutôt qu'une grande transmission JSON de 750 Ko que vous deviez décoder à la fois, essayez d'envoyer des messages plus petits (100 Ko) en arrière-plan et en demandant/montrant la partie des données que le les besoins du client en premier. De cette façon, votre page se sentira plus vite. Essayez toujours de charger à la demande de grands ensembles de données. Mon sentiment général est que le problème n'était pas la taille du message JSON, mais plutôt l'implémentation JSON d'ExtJS dans FF.
L'avez-vous essayé dans d'autres navigateurs? Si cela se produit uniquement sur FF, je vous recommande d'essayer et d'utiliser Firefox's own JSON interface pour faire le décodage et voir si cela fonctionne.
Avez-vous également vérifié que la réponse JSON est correcte? Il peut s'agir de l'analyseur JSON.
merci, la réponse JSON est correcte comme peut être déduite du commentaire en réponse à Zoidberg, car je suis capable d'évaluer la réponse JSON. –
Je ne pense pas que vous connaissiez l'implémentation d'Ext. S'il vous plaît voir ma réponse pour plus de détails. –
@bmoeskau: Je le pensais, car la plupart des frameworks javascript ont tendance à utiliser l'implémentation native si possible. Néanmoins, vous ne devez pas supprimer un problème avec le wrapper Ext sur FF. Si vous pouvez utiliser directement l'implémentation native de FF sans problèmes, alors vous pouvez être certain que le bug est bien réel. – voyager
Ceci est intéressant car Ext utilise simplement l'analyse JSON native du navigateur si elle est supportée par le navigateur, sinon il s'agit du JSON. Il n'y a aucune analyse manuelle d'aucune sorte, donc je ne sais pas comment cela serait affecté par Firebug. Une chose que vous pouvez essayer, vérifier la valeur de Ext.USE_NATIVE_JSON
juste avant votre logique d'analyse (devrait être true
si vous utilisez FF 3.1+, sinon sera false
). Essayez de mettre cela à la valeur opposée et voyez si cela change quelque chose (encore une fois, je ne sais pas pourquoi, mais cela vaut la peine d'essayer de voir s'il y a une différence dans votre cas).
BTW, c'est un très grand nombre de JSON ...;)
- 1. Comment créer et envoyer du JSON du côté client
- 2. désérialisation AJAX côté client JSON Dates
- 3. Pouvez-vous dire quel est le problème avec cette requête?
- 4. Quel cache JavaScript pouvez-vous recommander?
- 5. Déclenchement du contrôle utilisateur par le client du côté client
- 6. Est-ce que jQuery échouera avec le client côté XSLT
- 7. Qu'est-ce que json, pouvez-vous l'expliquer à un débutant?
- 8. incapable de décoder JSON
- 9. Vous voulez charger le fichier .cache.html d'application GWT côté client
- 10. ActionScript est-il un langage côté client ou côté serveur?
- 11. comment décoder cette chaîne JSON?
- 12. Décoder le format JSON en Java
- 13. Obtention du javascript coté serveur côté client
- 14. Transmettre blob côté client
- 15. JSON rpc inter-site: côté serveur Python et extension Mozilla utilisant le côté client Javascript
- 16. Obtenir le texte vaule du côté client dropdownlist
- 17. Est-ce que python côté client peut utiliser des threads?
- 18. Validation LiveValidation côté client - pouvez-vous contrôler la position des messages de validation?
- 19. Pouvez-vous utiliser l'API Java Reflection dans le client GWT?
- 20. XStream dans le côté client de GWT
- 21. Meilleures pratiques JSON: filtrage des nœuds côté client ou non?
- 22. Quel est le coût de beaucoup de TIME_WAIT côté serveur?
- 23. Est-il possible d'automatiser la publication du côté client?
- 24. Est-ce que XSLT du côté du client fait mal SEO
- 25. Décoder les données JSON en Java
- 26. Création du pouce côté client OU côté serveur?
- 27. Récupérer des images du serveur via le côté client
- 28. Implémentation d'un éditeur d'image côté client - quel est le meilleur moyen?
- 29. Json « Parser Error » du serveur au client
- 30. Pouvons-nous exécuter un exe qui est du côté client?
Je voudrais garder l'accent sur l'expérience avec différentes implémentations Javascript/Cadres de décodage JSON si possible, avec « dur et rapide » données, en particulier si quelqu'un a fait un benchmarking. Je suis bien au courant des approches alternatives. –