IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

JSF / Richfaces / Ajax : Lancer un long traitement sans bloquer l'utilisateur


Sujet :

JSF Java

  1. #1
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 125
    Points : 57
    Points
    57
    Par défaut JSF / Richfaces / Ajax : Lancer un long traitement sans bloquer l'utilisateur
    Bonjour,

    Je pense que j'ai mis l'essentiel dans le titre. Je veux associer à un bouton un traitement qui pourrait éventuellement durer et ce sans empêcher l'utilisateur de continuer à consulter les autres pages de mon appli. De plus, quand le traitement est fini, l'utilisateur est notifié par un message (popup ou autre). Je ne sais pas si c'est possible de faire ces genres de truc simplement avec une combinaison Richfaces / A4j et c'est justement le but de mon post !

    Autre chose, comme alternative je comptais lancer un job (avec Spring Batch) en asynchrone et celui-ci une fois terminé renseigne une table d'alerte, laquelle est lue périodiquement à l'aide d'un richfaces:push qui affiche les éventuelles alertes. Sauf que cette solution me parait exagérée et je me dis qu'il y a plus simple.

    Merci d'avance pour vos points de vue.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Tu peux utiliser les thread, le thread en cours fait la navigation à une autre page, alors qu'un autre thread exécute l'action qui dure longtemps, lorsque ce dernier se dernier se termine, il peut mettre une variable booléen à true.
    Tu peux utiliser showWhenRendered de la modalPanel de notification.
    Un a4j:poll pour reRender le modalPanel.

  3. #3
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 125
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    Merci pour ta réaction et désolé pour ce retard de ma part. Sinon, je ne comprend pas trop ton idée quand tu parles de Thread. Pourrais tu être un peu plus explicite stp ?

    Pour info, l'astuce avec Spring Batch marche mais demande des ressources pour scruter la table des alertes !

    Merci.

  4. #4
    Membre éprouvé

    Homme Profil pro
    Développeur J2EE Senior
    Inscrit en
    Mai 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur J2EE Senior
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 419
    Points : 900
    Points
    900
    Par défaut
    Alternativement à Spring, tu devrais peut être jeter un coup d'oeil à Seam qui parait particulièrement adapté à ton cas, vu que tu utilises déjà JSF et Richfaces.

    Je lisais justement leur doc tout à l'heure, et apparemment ils ont pensé à ce type de problème avec un scope à eux qu'ils appellent business context.
    http://docs.jboss.com/seam/latest/fr...s.html#d0e3647


    edit: je viens de trouver qqch d'encore plus précis:
    http://docs.jboss.com/seam/latest/en...m.html#d0e7104

  5. #5
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 125
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    Je check tes liens et je reviens vers toi. Sinon, il serait souhaitable de trouver une solution sans passer par Seam (vu l'architecture de l'appli est déjà établie et n'inclue pas Seam).

    Merci.

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Pour les thread, tu peux regarder dans la rubrique java, plusieurs tutoriels sur le sujet..

  7. #7
    Membre éprouvé

    Homme Profil pro
    Développeur J2EE Senior
    Inscrit en
    Mai 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur J2EE Senior
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 419
    Points : 900
    Points
    900
    Par défaut
    Juste pour info et pour référence ultérieure, le business context dont je parle plus haut ne convient pas vraiment. Il faudrait mieux utiliser une conversation avec des marqueurs spéciaux qui en font des taches.
    Some conversations are also tasks. A task is a conversation that is significant in terms of a long-running business process, and has the potential to trigger a business process state transition when it is successfully completed. Seam provides a special set of annotations for task demarcation.

Discussions similaires

  1. comment lancer la commande java sans bloquer le shell sous MacOsX
    Par philippe6 dans le forum Général Java
    Réponses: 5
    Dernier message: 03/04/2014, 18h20
  2. [WD16] Lancer un splashscreen durant un long traitement
    Par gardangel dans le forum WinDev
    Réponses: 8
    Dernier message: 27/04/2011, 17h32
  3. [jsf, richfaces, ajax] Sélection de checkbox.
    Par toMuch dans le forum JSF
    Réponses: 3
    Dernier message: 27/08/2010, 08h27
  4. Réponses: 1
    Dernier message: 01/04/2008, 10h50
  5. [Dos] Lancer une commande dos sans attendre la fin
    Par MrEddy dans le forum Windows
    Réponses: 4
    Dernier message: 09/06/2005, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo