Primefaces – comment arrêter le polling

Le composant « poll » de Primefaces permet de lancer des requêtes périodiquement (selon un intervalle de temps exprimé en seconde). Il est possible d’interrompre cette action en fonction de l’état du serveur.

Imaginer par exemple que vous implémentiez un traitement long et que vous souhaitiez que certains éléments de la page soient rafraîchis, avec les informations issues de ce traitement, dès que l’action est terminée. Par ce que vous êtes soucieux des performances de l’application et de l’expérience utilisateur vous avez utilisé une commande asynchrone pour déclencher ce traitement.

Depuis la version 3 de Primefaces, la fin de l’action de « polling » est très simple à implémenter.

 <p:poll interval="5" timeout="4000"
 listener="#{bean.listen}"
 update="widget" autoStart="true" stop="#{bean.disable}" />

Dans cet exemple une requête est exécutée toutes les 5 secondes. La requête est considérée comme terminée après 4 secondes (timeout exprimé en ms). La méthode listen du bean permet de gérer le changement d’état du serveur et d’arrêter l’action de polling en positionnant la valeur de l’attribut disable du bean à true.

private boolean disable= false;
public void listen() {
 if(condition) {
 disable= true;
 }

Et c’est tout… Primefaces gère l’arrêt du « polling » automatiquement dès que l’attribut « stop » prend la valeur true.

Attention tout de même à prévoir de limiter le nombre de tentative de « polling » car si la condition d’arrêt n’est jamais remplie vous risqueriez de compromettre inutilement les performances de votre application.

http://www.jperf.com

Publicités

A propos jlerbsc

founder of JavaPerf Consulting Http://www.jperf.com
Cet article, publié dans Primefaces, est tagué , . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s