Question

Je lis que XMLHttpRequests sont les mieux adaptés pour le contenu qui a une fréquence de mise à jour de 30 secondes ou plus. Le même article mentionne que les applications Web qui avaient besoin d'une fréquence plus rapide devrait utiliser une prise. Je ne peux pas trouver l'article / livre qui mentionne ceci (Si quelqu'un peut poster des liens vers des articles qui traitent, je vous serais reconnaissant). Votre expérience avec XMLHttpRequest et prises soutiennent la demande ci-dessus ou non? Quels sont les autres types de connexions entre le navigateur et le serveur doivent être pris en considération?

Était-ce utile?

La solution

Javascript ne dispose pas d'une façon de faire de véritables communications socket. Si vous êtes enfermés dans Javascript seulement (sans aide SWF, ActiveX, ou une autre technologie) alors XMLHttpRequest est votre meilleur pari.

XMLHttpRequest est pas bien adapté pour les mises à jour plus fréquentes (en théorie, au moins) en raison des frais généraux impliqués dans l'analyse et la formation de la demande et l'analyse des résultats. En théorie, une connexion Socket vous donnera un tuyau sur le serveur sans passer par toute la génération de demande.

L'inconvénient de l'utilisation des sockets (en plus du fait que Javascript ne les supporte pas directement) est que, si vous utilisez un format de sérialisation personnalisé pour les données qui reviennent sur la connexion Socket, ne code que vous écrivez peut consommer les résultats ( à moins que vous votre publique format de sérialisation). Cela peut ne pas être un problème pour vous, mais pour certains, il est un Showstopper ...

Voici une petite démo de prises en Javascript avec un assistant SWF:

SocketJS

Autres conseils

Il y a plus à la réponse que la fréquence de mise à jour. Le nombre d'utilisateurs simultanés est trop important, car la Comet (ce qui est le mot-clé qui vous mènera à d'autres articles) utilise des connexions de serveur et ne peut pas évoluer aussi bien. serveurs web modernes sont mieux à la manipulation plus de connexions, mais vous devez tester dans votre propre environnement.

Pour moi, même 30 secondes est trop souvent à en utilisant AJAX. Ma limite est probablement autour de la marque d'une minute.

Cet article doit maintenant être considérée comme périmée. Les navigateurs modernes ont pas le traitement des demandes de trouble aussi vite que 1 seconde. Regardez la rapidité avec laquelle Google peut deviner votre recherche. Un appel XMLHttpRequest simple. Pas de flash. Non ActiveX.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top