2010-09-24 6 views
1

Je peux facilement utiliser javascript pour actualiser automatiquement la page toutes les 10 sec par exemple, mais cela ne va-t-il pas surcharger la page et demander des changements toutes les 10 secondes? Y a-t-il un moyen plus efficace de le faire? Quelqu'un m'a dit une fois qu'il y a un moyen pour que le client attende une réponse du serveur qui ne l'envoie que quand il y a vraiment un changement, par exemple un copain a écrit un texte dans le chat. Est-ce vraiment faisable à faire? Y a-t-il un meilleur moyen? Pourquoi actualiser une page de discussion?Quel est le meilleur moyen de rafraîchir automatiquement un chat pag

Répondre

0

Pourquoi ne pas simplement vérifier le serveur pour voir s'il y a de nouveaux messages/chats etc. Si oui, ajoutez ceux-ci à votre boîte de discussion.

Demandez à votre minuterie (setTimeOut) le feu jamais dit 5 secondes:

code pseudo rapide:

function updateChat() 
{ 
    //Query a web service on the server for new text chat 
    //If successful append the chat to the chat area 

    //Call timeout again. 
    setTimeout(updateChat, 500); 
} 

Edit: Voyant que vous avez je .NET supposerons que vous utilisez ASP.NET. Voici un lien vers un programme de chat de démonstration:

http://trappedinhoth.blogspot.com/2009/04/ajax-jquery-chat-demo.html

+0

ok, thats une bonne solution, mais pas beaucoup d'appels à de serveur? Est-ce vraiment efficace? Y a-t-il un autre moyen? –

+0

@Giancarlo Solarino ~ http://google.com/search?q=premature+optimization ... abandonner, cesser d'essayer de deviner ce que trop de charge est. Écrivez-le correctement, puis voyez si c'est trop chargé. À titre de référence, les serveurs peuvent gérer ce type de charge pour des milliers d'utilisateurs, sans aucun impact perceptible. – jcolebrand

+0

Il est plus efficace de charger que d'actualiser une page entière. C'est une approche similaire au fonctionnement du chat FaceBook. –

0

Vous pouvez appliquer OutputCache sur le côté serveur. De cette manière, le serveur n'a besoin que de générer 1 réponse par 10 secondes

Questions connexes