2013-02-22 7 views
0

Existe-t-il une méthode recommandée pour implémenter le modèle Observer dans JSF, c'est-à-dire forcer une mise à jour de l'interface utilisateur à partir du bean Java?Modèle d'observateur avec JSF/PrimeFaces

J'ai jeté un oeil à PrimePush, mais aucun de leurs exemples ShowCase ne semble fonctionner avec mes navigateurs (par exemple FF 19.0), c'est pourquoi je m'en suis tenu à l'écart.

J'utilise actuellement un sondage PrimeFaces pour mettre à jour les composants respectifs dans un intervalle régulier. Je pensais à réduire l'intervalle du sondage à "1" et à bloquer sa méthode d'action jusqu'à ce que le serveur soit prêt à pousser. Est-ce une bonne idée ou est-ce que des demandes aussi longues seront annulées à un moment donné?

<p:poll interval="15" listener="#{fileBucket.keepAlive}" update=":download:files :expiryDateValue" oncomplete="updatePageIsValidForValue();" /> 
+0

Peut-être que le problème que vous avez eu est comment vous avez mis en œuvre la poussée. Je l'ai testé dans Chrome, Firefox et IE 9. Quels navigateurs utilisez-vous? –

+0

Merci pour votre réponse rapide. Le navigateur principal qui m'intéresse est Firefox 19.0. Je n'ai pas encore implémenté Push in my solution, je parlais en fait de leurs échantillons de vitrine. –

+0

Eh bien, vous pouvez ouvrir l'exemple [FacesMessage] (http://www.primefaces.org/showcase/push/facesmessage.jsf) dans Firefox 19 et dans Chrome (ou un autre navigateur) dans la même machine, puis envoyez un message à partir du navigateur non-Firefox et voir la réponse dans votre Firefox, il devrait vous donner le comportement attendu (je l'ai testé avant de poster ce commentaire). Btw J'utilise Firefox 19 (je ne l'ai pas réalisé jusqu'à présent) –

Répondre

1

action de blocage dans le sondage serait basiquement être un coup de pouce fabriqué à la main et je le déconseille, vous aurez très probablement de nombreux problèmes dans l'exécution. L'interrogation est plus sûre et plus portable mais si cela ne suffit pas, vous devriez essayer l'une des implémentations push existantes comme PrimePush.

+0

Thx! J'ai expérimenté avec PrimePush, maintenant que le problème de port est résolu, et bien qu'il a bien fonctionné dans mon environnement de test, je ne recevrai pas la permission de le présenter au projet juste pour cette page. Je vais donc m'en tenir à l'approche du vote. –