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 :

[Problème] Double remplissage de ma page


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Par défaut [Problème] Double remplissage de ma page
    Bonjour,

    J'ai remarqué que lorsque j'accède à une page qui contient une liste déroulante, je passe 2 fois dans le Get qui représente ma liste déroulante dans mon backing-bean. Par contre je n'ai pas ce souci pour un champ texte simple!
    Du coup il exécute 2 fois ma requête qui va chercher mes valeurs en base et je perds en performance pour rien!

    Auriez-vous un remède docteurs?

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    oui, cache les résultat dans ton bean. JSF accès aux backing beans autant de fois qu'il en a besoin, toutes les valeurs sont considérées comme volatiles (peuvent changer d'un appel à l'autre) et donc jsf ne fait pas de caching. Dans ton cas, il fait probablement un appel lors du apply request value (pour voir si la valeur sélectionnée par l'utilisateur apparitens bien a la liste des valeurs autorisées) et une fois lors du render (pour afficher toutes les valeurs)

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Par défaut
    Ok!
    Citation Envoyé par tchize_ Voir le message
    oui, cache les résultat dans ton bean.
    Et comment tu me conseilles de faire ça?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu les stocke dans un champ privé du bean que tu n'initialise qu'une seul fois :/

  5. #5
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Exactement, soit en Java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private List maListe = null;
     
    public List getMaListe() {
        if (maListe == null) {
            // Code d'initialisation de la liste, qui ne sera exécuté qu'au 1er appel...
            maListe = ...
        }
        return maListe;
    }
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  6. #6
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Par défaut
    C'est ce que je faisais...mais ça n'empêche qu'il fait 2 fois le return (même s'il ne rentre pas dans la conditionelle pour le 2ème passage)! Bon à priori il n'y a pas de moyens d'éviter cela!

    Merci quand même pour vos explications!

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par NinaSky Voir le message
    C'est ce que je faisais...mais ça n'empêche qu'il fait 2 fois le return (même s'il ne rentre pas dans la conditionelle pour le 2ème passage)! Bon à priori il n'y a pas de moyens d'éviter cela!

    Merci quand même pour vos explications!
    Comme mentionné, jsf ne fait pas de caching des valeurs de tes bean, poru des raisons qui me semblent évidentes de cohérence.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/07/2012, 17h06
  2. [CR11] Problème d'en-tête de page.
    Par Machuet dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 07/07/2005, 13h49
  3. probléme d'insert dans une page asp !
    Par tomtom25 dans le forum ASP
    Réponses: 5
    Dernier message: 31/03/2005, 16h04
  4. Problème de chaine sur une page HTML
    Par Kerod dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/11/2004, 16h23
  5. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40

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