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
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
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
Vous pouvez essayer la nouvelle technologie WebSockets en JavaScript. Il n'est pas supporté par de nombreux navigateurs (seuls Firefox 4, Chrome 4 et Safari 5 le supportent actuellement), mais il permet à la connexion au serveur de rester "ouverte" et le serveur peut alors envoyer un message au client. Plus d'infos:
ok, thats une bonne solution, mais pas beaucoup d'appels à de serveur? Est-ce vraiment efficace? Y a-t-il un autre moyen? –
@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
Il est plus efficace de charger que d'actualiser une page entière. C'est une approche similaire au fonctionnement du chat FaceBook. –