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

JavaScript Discussion :

page lente par remplissage d'un tableau ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut page lente par remplissage d'un tableau ?
    Bonjour,
    je viens dans ce forum en tant que newbie total (donc ne tapez pas trop fort) et j'ai réellement besoin d'éclaircisement

    dans un portail d'enterprise, une page est générée de sorte à avoir une liste déroulante à gauche permettant de sélectionner un ou plusieurs éléments. Une fois la sélection faite, la liste déroulante de gauche se met à jour avec des sous-éléments.

    La génération de cette page ie. pour obtenir l'affichage de la première liste met 5 minutes.
    A mon avis, cela provient du chargement des valeurs dans la première liste. En cherchant sur le net, le code utilisé est un ARRAY.

    Q1 : en ouvrant cette page, la CPU de mon PC est sollicitée à 100% pendant les 5 minutes. Est-ce normal que cela soit mon PC qui travaille dans ce cas ? Cela vient-il de l'utilisation du javascript ?

    J'ai affiché le code source de la page. La seule chose remarquable dedans est la création en dynamique de la liste 1. Cette partie ressemble à cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <script>
    tab = new Array ();
    tab.push('A1_AA');
    tab['A1_AA']=new Array();
    tab.push('A3_AA_AP');
    tab['A3_AA_AP']=new Array();
    tab.push('A6_AACAP');
    tab['A6_AACAP']=new Array();
    tab.push('A7_AACAP');
    tab['A7_AACAP']=new Array();
    ...
    tab.push('jobs');
    tab['jobs']=new Array();
    tab['A1_AA'].push('M001#M0010100');
    tab['A1_AA'].push('M002#M0020001');
    tab['A1_AA'].push('M003#M0030100');
    ...
    tab['jobs'].push('#');
    </script>
    Je pense que c'est la cause des lenteurs car cette partie en réalité 50000 lignes au minimum.
    Dois-je comprendre que je crée un tableau nommé tab ? mais que fait tab['A1_AA']=new Array(); ?
    tab.push le rempli avec les valeurs M001#M0010100 etc ?

    Ca s'optimise un truc comme cela ?

    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ça irait sans doute plus vite si tu avais une chaine à splitter ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut
    a pas compris.... plus vite pour comprendre ?

    Ai-je une bonne intuition pour la Q1 ?

    En fait la valeur A1_AA par exemple se voir dans la première liste et M001#M0010100, M002#M0020001, sont les sous éléments de cette valeur, que l'on affiche dans la liste 2 après avoir sélectionné la valeur A1_AA dans la première liste.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    je pensais plutot à quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     chaine= "A1_AA|M001#M0010100,M002#M0020001@@A2_AA|M001#M0010100,M002#M0020001@@"
     tab=chaine.split('@@')
     for(elt in tab){
      tab[elt]=tab[elt].split('|')
      }
     var fin=new Array() 
     for (i=0;i<tab.length-1;i++){
     fin[tab[i][0]]=tab[i][1].split(',')
      }
     
    alert(fin["A2_AA"][1])
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut
    D'accord... donc en faisant une double boucle j'accélèrerai l'affichage.

    je pense avoir trouver un bon parallèle (compréhensible) avec ceci.

    Je suis dans le même cas où deux table vont me permettre de charger les deux listes.
    Est-ce qu'en parlant sur une réécriture en Ajax je vais encore accélérer ce chargement ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    a mon avis c'est surtout en splittant que tu gagnerais du temps ...
    sinon en le générant avec php
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/03/2012, 11h01
  2. Réponses: 0
    Dernier message: 19/03/2012, 15h05
  3. Réponses: 13
    Dernier message: 14/10/2003, 14h31
  4. Réponses: 11
    Dernier message: 04/08/2003, 15h30
  5. Tri par fusion d'un tableau
    Par Mailgifson dans le forum C
    Réponses: 5
    Dernier message: 12/12/2002, 14h53

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