Question

Je construis un élément d'une page Web qui a besoin d'interrogation de base de données relativement constante. Je vois deux approches différentes pour cela, et je me demande si l'un d'eux est mieux que les autres, ou si je manque une troisième option.

1) envoyer une demande AJAX tous les 1 ou 2 secondes pour vérifier les mises à jour. Chaque demande retourne immédiatement si oui ou non il y a de nouvelles données.
2) Le feu hors d'une demande d'AJAX unique qui ne reviendra pas jusqu'à ce qu'il reçoive des données ou un délai d'attente se produit. À l'une de ceux qui se produisent, il se déclenche au large de la prochaine demande. (Je pense que cela est appelé à long scrutin?)

Le nombre de requêtes de base de données sera la même chose avec soit, mais avec # 2 il y aurait moins de demandes de tir à partir du navigateur qui pourrait économiser des ressources en bande passante et des clients. Pour le serveur, est-il préférable d'avoir une demande de PHP simple que les séjours actifs et sommeils entre les requêtes, ou que les incendies toutes les quelques secondes, des sondages la DB, puis éteint? Ou est-il pas de différence et j'insiste sur ce trop?

EDIT: Je suppose que je doit également préciser que c'est un widget de chat d'une application web plus grande. ne va pas un léger retard dans la communication pour tuer un utilisateur, comme le chat est une caractéristique secondaire.

Était-ce utile?

La solution

Long vote sera meilleure échelle (à savoir moins de charge du serveur) que l'interrogation, tout en donnant de meilleurs temps de réponse.

Si vos sondages bénéficiaires, le temps de trajet moyen d'un message sera la moitié de votre intervalle de sondage.

Avec une longue interrogation, son instant -. Le serveur attend que s'il n'y a rien à dire

Si vous faites la messagerie de chat, rendez-vous à long sondage; est une chose de la facilité d'utilisation.

Le bas côté avec une longue interrogation est qu'il est plus compliqué à mettre en œuvre; mais son pas beaucoup plus compliqué, et il est largement mis en œuvre. Donc, si vous ne pouvez pas utiliser un impromptu cadre de votre serveur Web de choix, vous pouvez définir à écrire un raisonnable et vous le faire fonctionner.

Autres conseils

Vous pouvez également consulter websockets , une partie des navigateurs les plus récents (ou émulé par un < a href = "http://github.com/gimite/web-socket-js" rel = "nofollow"> fichier flash vous déposez sur votre page)

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