2010-05-05 5 views
1

Ceci est mon premier jeu avec JSON et je suis surpris de la lenteur est.

Je suis tout à fait sûr que je suis absent quelque chose et je serai gratefull si quelqu'un peut vous aider.

Voici mon code

$.getJSON('/localhost/CountryList', function (data) 
{ 
    alert ("finished"); 
}); 

Mon countryList retourne un tableau comme celui-ci

{"Code":"AF","Name":"Afghanistan"}, 
{"Code":"AX","Name":"Aland Islands"}, 
{"Code":"AL","Name":"Albania"}, 

etc ....

La superficie de mon tableau est d'environ 6K et il faut plus de 1m 30s pour le rendre rendu par le navigateur de mon IIS de développement local.

Quand je la compression, la taille va à 2K mais le temps est encore 20 ans 1m

Est-il normal que JSON est si lent?

+1

Non, certainement pas. Vérifiez avec Firebug ce qui prend si longtemps - est-ce la demande, ou attendre une réponse du serveur? Si c'est la seconde, qu'est-ce qui prend si longtemps? –

+0

Je ne sais pas si je suis à la recherche au bon endroit à Firebug, quand je clique droit sur l'événement, je peux voir que ceci: 0ms recherche DNS 1ms Connexion 1ms Blocking 0ms Envoi 1m18s en attente 2ms Recevoir – nachid

Répondre

0

Pouvez-vous regarder votre interaction dans le dialogue de l'outil développeur de Firebug ou Chrome pour voir où le temps est dépensé? Comment le contenu AJAX est-il généré? Est-ce une ressource statique sur le serveur, ou y a-t-il un travail dynamique avec de la magie de base de données potentiellement longue qui doit avoir lieu? Attend-il le résultat AJAX, ou est-ce vraiment dans le rendu?

En outre, si vous hébergez les données localement (et temporairement, pour cet exercice) dans votre page elle-même, est le rendu raisonnablement rapide?

+0

Lorsque je mets le contenu dans un fichier texte, je peux l'ouvrir instantanément à partir du navigateur – nachid

+0

Voulez-vous dire que vous pouvez tirer le contenu dans le navigateur via getJSON "instantanément" lorsque le contenu existe sous forme statique fichier? Ou dites-vous que vous pouvez simplement ouvrir le fichier texte avec le navigateur? Si le premier, alors il semble qu'il n'y a pas de problème avec jQuery ou votre utilisation de getJSON. Le goulot d'étranglement est alors dans votre code côté serveur pour générer le contenu. –

+0

non, ce que je voulais dire est l'ouverture du fichier texte avec le navigateur. Dans mon code, ima générer les données de ma base de données et je peux voir avec mon débogueur que le temps est passé entre le moment où il est envoyé au serveur Web et le moment où il est rendu au navigateur – nachid