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
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:
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.
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.
- 1. XmlHttpRequest vs cURL
- 2. Non-blocage Socket Polling vs Blocage socket
- 3. TCPClient vs Socket en C#
- 4. XMLHttpRequest() vs ActiveXObject ("Microsoft.XMLHTTP") - à quoi bon?
- 5. connexion HTTP permanente vs connexion socket TCP
- 6. Programme de socket Python vs C++ (Winsock)
- 7. Une autre approche captcha
- 8. Traitement du courrier: rails vs php vs perl vs?
- 9. T4 vs CodeDom vs Oslo
- 10. Diffuser vs MPI vs zeromq?
- 11. VS Solution, projets vs dlls meilleure pratique
- 12. apc_define_constants vs hidef vs define
- 13. SHMEM vs tmpfs vs mmap
- 14. Rebobiner une socket vers une autre interface
- 15. Traiter de nombreux e-mails entrants dans Rails: MySQL vs Imap/Pop3 vs autre solution
- 16. Inhouse enregistrement vs OpenID vs Google Friend Connect vs Facebook Connect vs (etc)
- 17. Eclipse vs VS IDE Test d'une classe
- 18. POJO vs EJB vs EJB 3
- 19. PHP exec() vs système() vs passthru()
- 20. Services Web - Put vs Post vs Get
- 21. Migrer vs 2005 à 2008 vs
- 22. Exceptions vs codes de résultat pour une classe de client de socket
- 23. USB - synchronisation vs vs async semi-async
- 24. TTabSet vs TTabControl vs TPageCtrl/TTabSheet?
- 25. DB2 vs PostgreSQL vs SQL Server
- 26. Développement iPhone - XMLParser vs libxml2 vs TouchXML
- 27. SVN vs VSS vs CVS comparant l'aide
- 28. URIs vs Hidden Forms
- 29. Une alternative à VS 2008 Designer Écran
- 30. BinaryWrite vs WriteFile