Quel est le modèle suggéré pour fournir des mises à jour de l'interface utilisateur en temps réel dans une application Web? Par exemple, tout en répondant à une question sur SO et un autre utilisateur soumet une réponse et une invite apparaît. En outre, si chaque page de votre site fournit cette fonction, comment évitez-vous de surcharger le serveur avec trop d'appels AJAX?Meilleure façon de mettre en œuvre des mises à jour de l'interface utilisateur en temps réel comme le notificateur «nouvelle réponse» de SO?
Répondre
Je pense que l'utilisation de la comète pour ce sera une approche. (Comet Info here et here)
Avec Comet vous pouvez pousser la réponse ou tout autre information que vous avez sur le serveur lorsque vous avez l'info, si vous avez gagné » t demander l'information du client toutes les X fois.
Mais comme inconvénient, tvanfosson et Josh me le font remarquer, il va garder la connexion HTTP bloquée dans un état de lecture client pendant des périodes prolongées.
Il suffit de lancer une minuterie et d'interroger le serveur via XmlHttpRequest
. Ce n'est pas comme si vous aviez besoin de mises à jour instantanées; AFAIK, SO interroge sur un intervalle de 30 secondes, mais c'est trop lent pour moi, donc j'ai truqué un script Greasemonkey pour vérifier toutes les 15 secondes.
- 1. JTree mises à jour en temps réel?
- 2. Quelle est la meilleure façon de mettre en œuvre une machine d'état de l'interface utilisateur?
- 3. Mise en œuvre du chat en temps réel pour SharePoint
- 4. Besoin d'une table JavaScript triable qui peut gérer les mises à jour en temps réel
- 5. La meilleure façon de mettre en œuvre une procédure stockée avec recherche en texte intégral
- 6. Meilleure façon de mettre en œuvre ce schéma de connexion dynamique pour asp.net
- 7. comment mettre en œuvre jquery oop dans le site réel
- 8. mettre en œuvre webcache comme application Web
- 9. Meilleure façon de mettre en œuvre des pages Web «Post Card Sized»
- 10. Meilleure façon de mettre à jour dans Linq To SQL
- 11. Graphiques en temps réel en Java
- 12. Vote en ligne en temps réel sans quitter la page?
- 13. Meilleure façon de mettre en œuvre des fonctionnalités d'ajout/édition en HTML pour plusieurs classes à la fois
- 14. Cloner MovieClip en temps réel
- 15. Meilleure façon de mettre en œuvre essayer de catch dans php4
- 16. Meilleure façon de mettre à jour les classements des utilisateurs sans tuer le serveur
- 17. Meilleure façon de mettre en sandbox Apache sur Linux
- 18. Meilleure façon de mettre à jour un programme de plusieurs gigaoctets (exécution de DVD? Logiciel de mise à jour?)
- 19. utilisant la réflexion pour trouver des interfaces mises en œuvre
- 20. La meilleure façon de mettre en œuvre une interface de calendrier en utilisant les flux Google Cal pour les événements?
- 21. La meilleure façon de mettre en œuvre un «trouver mon plus proche» dans ma webapp
- 22. La meilleure façon de mettre en œuvre .lastChild utilisant Prototype ou jQuery
- 23. Validation de formulaire en temps réel jQuery
- 24. meilleure façon de mettre en œuvre un écran Splash Win32 C++
- 25. Mises à jour de Zend Framework?
- 26. Quelle est la meilleure façon de mettre en œuvre les préférences de l'utilisateur dans cette application PHP?
- 27. Java en temps réel cadre de suivi des services
- 28. utilisation des générateurs comme un notificateur de progression
- 29. problème de performance IIS essayant de mettre en œuvre un protocole comme XMPP
- 30. Où puis-je trouver des mises à jour, des taux de change en direct?
En fait, je pense que ce n'est pas particulièrement une bonne idée. Je ne vois pas comment cela évoluera très bien car cela dépend de garder une connexion ouverte pendant de longues périodes de temps. Lorsque le nombre de connexions augmente, cela met l'accent sur votre serveur Web lorsque les ressources réseau sont utilisées mais pas libérées. – tvanfosson
C'est très bien si vous seulement une poignée d'utilisateurs. Une boîte de quadruple proc ne pouvait supporter que 400 utilisateurs concurents ... une idée géniale juste pas de pratique pour une grande échelle – JoshBerke
Oui, je pense que ça ne montera pas beaucoup. Nous avons utilisé cette approche, mais nous n'avions pas une quantité massive d'utilisateurs comme SO. –