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

Composants Java Discussion :

raffraichissement très elevée


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Par défaut raffraichissement très elevée
    Bonjour

    J'ai une table qui recupère, ses données à partir d'une base de données, ma table est dans un JScrollPane.

    Mon problème c'est que pour ma petite table de 9 lignes et 7 colonnes, lorsque je scroll lors de l'exécution la fréquence de mise à jour est très elevée ! en fait j'ai fait un compteur dans mon modèle qui compte combien de fois la fonction getValueAt(...) est appelée, et ce qui m'a étonné c'est que pour un très simple scrolling qui ne dure même pas une seconde, cette fonction est appelée de 300 à 400 fois, ce qui me parait complètement inutile, surtout qu'à chaque appel de cette fonction y'en a une requête à éxecuter et que le nbre de ligne sera beaucoup plus elevé à l'avenir.

    Dans le JSpliPane on peut éviter ceci si on utilise la fonction setContinuousLayout(false), qui ne mets les composants à jour que lorsque la souris est relachée, ceci est-il possible avec une JScrollPane??

    merci d'avance

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Je ne sais pas si on peut éviter ça avec le JTable, par contre, je sais qu'il faut absolument éviter que la méthode getValueAt() éxécute des requêtes....

    Il faut que le résultat de la requête soit mis en cache au niveau du modèle et que la méthode getValueAt() interroge ce cache pour fournir les données à l'affichage.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Par défaut
    d'accor je vais prendre votre conseil.

    merci bien pour votre aide

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En général faire une requête dans le getValueAt est une très mauvaise idée.
    En effet lier le modèle directement à la base génèrera de façon quasi obligatoire des problèmes avec l'EDT, une application absolument pas réactive.

    Je te conseille plutôt de faire une requête initiale pour remplir le modèle et de laisser celui ci vivre sa vie. Un modèle s'appuyant directement sur JDBC a tendance à très vite devenir une montagne de bugs et inmaintenable.

    Eventuellement si tu as besoin d'avoir des données constamment à jour dans ta table car d'autres utilisateurs ou applications peuvent modifier la base je te conseille plus tôt de partir sur une système de thread déclenché toute les x secondes qui crée un nouveau modèle et l'affecte à ta JTable. Sinon en ce qui concerne les mises à jour basique il suffit de garder trace des modification à l'intérieur de la table pour ne pas avoir à tout recharger.

  5. #5
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 138
    Par défaut
    Merci beaucoup pour vos recommandations !

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

Discussions similaires

  1. BDD sur réseau très très très lent...
    Par ericain dans le forum Access
    Réponses: 12
    Dernier message: 20/02/2015, 17h17
  2. Une unité pour gérer des très grands nombres
    Par M.Dlb dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2003, 12h07
  3. Réponses: 10
    Dernier message: 31/07/2003, 00h35
  4. Réponses: 4
    Dernier message: 28/09/2002, 00h00
  5. Probleme de raffraichissement
    Par gimlithedwarf dans le forum Composants VCL
    Réponses: 5
    Dernier message: 12/08/2002, 06h31

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