2011-03-01 4 views
0

J'ai fait un site web avec des photos qui se rafraîchit chaque seconde. Je récupère ces photos depuis un serveur web avec un appel jQuery $ .ajax() toutes les secondes. Cela crée une sorte de boucle infinie de chargement de photo, que je veux. Cependant, ma page ne cesse de charger (l'icône de rotation continue à tourner ou la barre de chargement est chargée pour toujours). Sur Chrome en particulier, c'est ennuyeux, car il y a un spinner à côté de ma souris.navigateur ajax page d'appel asynchrone continue de chargement

Comment puis-je éviter qu'il ne semble pas que mon chargement de page pour toujours, sans modification de fonctionnalité? Merci ..

Répondre

1

Vous ne devriez pas frapper votre serveur chaque seconde comme ça. Parce que même si cela peut fonctionner pour une seule personne, une fois que vous allez vivre et plus de gens visitent votre site, il peut tuer votre serveur. Mise à part cet avertissement, vous pouvez essayer d'attendre que la page soit complètement chargée avant de déclencher votre ajax. Vous pouvez utiliser setTimeout pour attendre quelques secondes. Cependant, je pense que vous pouvez recevoir la notification de chargement parce que les images sont récupérées sur le serveur.

+0

Merci pour la suggestion! J'ai utilisé la méthode setTimeout() et cela a résolu le problème de chargement. :) À propos de votre avertissement: J'utilise le serveur web Tornado python avec des appels complètement asynchrones. Je ne l'ai pas beaucoup utilisé, mais il devrait être capable de gérer plusieurs utilisateurs je suppose ... Relié à cela, il résout également le problème C10k (http://en.wikipedia.org/wiki/C10k_problem) – philipDS

+0

cool, je suppose que si vous êtes serveur peut prendre la charge. S'il vous plaît accepter la réponse si elle a résolu le problème :) – JohnP

+0

l'a accepté. Merci encore! :) – philipDS

1

Je voudrais différer l'analyse de votre javascript jusqu'à la fin du chargement de la page. Utilisez le fichier Googles .js trouvé ici: http://code.google.com/p/domready/

De cette façon, votre page se chargera plus rapidement, complétera le chargement et commencera à faire vos appels ajax.

Questions connexes