2011-08-27 7 views
1

Actuellement, je fais une page de livre d'or. Qui permettent à l'utilisateur de commenter certains éléments. Laisser dire userA poster un commentaire. Comment faire pour que le nouveau message s'affiche automatiquement sur la page du navigateur userB? Je suis en mesure d'afficher la publication sur le navigateur userA mais comment faire pour que le navigateur userB se mette également à jour automatiquement pour afficher le nouveau message?Mise à jour automatique des données JSP

Répondre

2

Vous recherchez l'inverse AJAX (par exemple, Comet).

Mise à jour:

Après avoir appris les bases, je vous recommande de Atmosphere pour fournir la mise en œuvre effective. En outre, si vous pouvez choisir votre conteneur, je voudrais aller avec Jetty ou GlassFish.

+0

Aucune idée aucun exemple merci? – user236501

+1

Google Mojo: http://java.dzone.com/articles/using-atmospheres-jquery-plug. Comet n'est pas quelque chose que vous pouvez apprendre d'un post de stackoverflow. Prenez votre temps pour étudier et apprendre les techniques impliquées et lorsque vous avez une question plus spécifique, n'hésitez pas à demander. –

2

Si vous codez une sorte de messagerie instantanée, où il devrait y avoir un très petit délai entre la publication et son apparition dans la page de l'utilisateurB, alors regardez Comet, comme suggéré par Anthony. Sinon, la manière la plus simple d'y parvenir est d'avoir la page sur userB régulièrement (toutes les 2, 3, 5, 10 minutes: vous décidez de ce qui est acceptable) interrogez le serveur pour de nouveaux messages en utilisant une requête AJAX. Assurez-vous de ne pas consommer toute votre bande passante en faisant cela, cependant.

+0

Oui. Une requête AJAX ou même quelque chose de plus old school comme [Meta refresh] (http://en.wikipedia.org/wiki/Meta_refresh). Mais encore une fois, prenez conseil @JB, cela peut potentiellement consommer beaucoup de bande passante. –

+0

Que diriez-vous d'un site d'enchères? comment refléter les données? – user236501

+0

Cela dépend de la bande passante que vous (et les utilisateurs) avez, du nombre d'utilisateurs simultanés et du délai acceptable. Il n'y a pas de réponse définitive. Voyez ce qui convient le mieux à votre situation. –

0

Plutôt que d'utiliser la comète, il suffit de garder une minuterie jquery et poll votre serveur de mises à jour.

Voici comment vous devriez interroger.

0. Assume each message posted has a unique incremental rownumber. 
1. pass your client page's last displayed row number. 
2. check if there are any rows greater than the rownumber you passed. 
3. if more,return all those rows to the client. 
4. do all the above things using ajax,preferably in jquery. 
Questions connexes