2009-06-30 7 views
2

J'ai lu que XMLHttpRequests est mieux adapté pour le contenu qui a une fréquence de mise à jour de 30 secondes ou plus. Le même article mentionnait que les applications Web nécessitant une fréquence plus rapide devaient utiliser une socket. Je ne peux pas trouver l'article/livre qui mentionne cela (Si quelqu'un peut poster des liens vers des articles qui en discutent, je l'apprécierais). Est-ce que votre expérience avec XMLHttpRequest et les sockets supportent la revendication ci-dessus ou pas? Quels autres types de connexions entre le navigateur et le serveur doivent être pris en compte?XMLHttpRequest vs Socket vs une autre approche

Répondre

3

Javascript n'a pas de moyen de faire de vraies communications de socket. Si vous êtes limité à Javascript seulement (sans aide SWF, ActiveX, ou autre technique) alors XMLHttpRequest est votre meilleur pari. XMLHttpRequest n'est pas bien adapté pour des mises à jour plus fréquentes (en théorie au moins) à cause du temps système nécessaire à l'analyse, à la formation de la requête et à l'analyse des résultats. En théorie, une connexion Socket vous donnerait un tuyau vers le serveur sans passer par toute la génération de la requête. L'inconvénient de l'utilisation de Sockets (outre le fait que Javascript ne les supporte pas directement) est que si vous utilisez un format de sérialisation personnalisé pour les données revenant sur la connexion Socket, seul le code que vous écrivez peut consommer les résultats (sauf si vous publiez votre format de sérialisation). Cela ne peut 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

2

Il y a plus à la réponse que la fréquence de mise à jour. Le nombre d'utilisateurs simultanés est également important, car l'utilisation de Comet (c'est le mot-clé qui vous mènera à plus d'articles) utilise les connexions au serveur et peut ne pas évoluer également. Les serveurs Web modernes traitent mieux les connexions, mais vous devez tester cela dans votre propre environnement.

Pour moi, même 30 secondes est trop souvent pour utiliser AJAX. Ma limite est probablement autour de la minute.

-1

Cet article doit maintenant être considéré comme daté. Les navigateurs modernes n'ont aucune difficulté à gérer les requêtes aussi vite qu'une seconde. Regardez à quelle vitesse Google peut deviner votre recherche. Un simple appel XMLHttpRequest. Pas de flash. Pas d'ActiveX.