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 :

Parcours de tableau et optimisation


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre habitu�
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 13
    Par d�faut Parcours de tableau et optimisation
    Bonjour,

    je d�bute en javascript et je souhaiterai avoir votre avis sur le probleme suivant :

    j'ai une HTML Table (un datagrid g�n�r� dynamiquement en ASP.NET) permettant de saisir des valeurs sur plusieurs lignes pour tous les jours d'un mois.
    J'ai donc autant de colonnes que de jours dans le mois (plus quelques entetes de ligne). Le nombre de ligne est variable. Dans chaque "case" du tableau, j'ai un input (textBox) dans lequel on saisie une valeur num�rique.

    La derniere ligne de mon tableau contient la somme des valeurs sur chaque colonne. Cette somme est calcul� en javascript et est mise � jour � chaque fois qu'on modifie une textbox du tableau.

    Ma question est la suivante : je trouve que le temps n�cessaire pour faire la somme de chaque colonne lors du premier affichage est trop long (apres �� va car je ne recalcule que la colonne modifi�e). J'utilise un getElementById sur chaque textbox pour r�cup�rer la valeur.

    Comment puis-je optimiser le parcours (par ligne et par colonne) ?
    Est-ce qu'il vaut mieux utiliser :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var val = document.getElementById('monDatagrid' +'__ctl' + numLigne + '_txtNb' + numColonne).firstChild.nodeValue;
    OU
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var val = maTable.rows[numLigne].cells[numColonne].firstChild.firstChild.nodeValue  ;
    D'avance merci

  2. #2
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    pourquoi pas un getElementsByTagName("input")

  3. #3
    Membre habitu�
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 13
    Par d�faut
    Les inputs g�n�r�s automatiquement par asp.net n'ont pas d'attributs "name" fixe, ils sont du style :
    nomduDatagrid:_ctlx:idDuControle
    ce qui donne pour ma premiere ligne / premiere colonne :
    monDatagrid:_ctl2:txtNb0
    et pour ma deuxieme ligne / deuxieme colonne :
    monDatagrid:_ctl3:txtNb1
    etc...

  4. #4
    Expert confirm�

    Avatar de denisC
    Profil pro
    D�veloppeur Java
    Inscrit en
    F�vrier 2005
    Messages
    4 050
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur Java
    Secteur : Service public

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 4 050
    Par d�faut
    Citation Envoy� par mik007
    Les inputs g�n�r�s automatiquement par asp.net n'ont pas d'attributs "name" fixe
    Et leurs ids?

  5. #5
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    var somme=0;
    var matable=document.getElementById(id_table);
    var champ=matable.getElementsByTagName("input");
     
    for(i=0;i!=fin_de_mois;i++){
    somme+=parseInt(champ[i].value);
    };
    :

  6. #6
    Expert confirm�

    Avatar de denisC
    Profil pro
    D�veloppeur Java
    Inscrit en
    F�vrier 2005
    Messages
    4 050
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur Java
    Secteur : Service public

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 4 050
    Par d�faut
    Citation Envoy� par javatwister
    :
    Il dit qu'il veux des sommes par colonne JT. Ta solution ne fonctionne pas directement, mais je pense qu'il peut quand m�me y arriver

  7. #7
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    ah oui tiens, je suis � la masse...


    bah, sinon, �a rejoint le pbm du comp�re lemmings l'autre jour!

    ==> Attribution d'un id avec un rep�re fixe selon la colonne, r�cup�ration des cellules (toutes, forc�ment, dans un premier temps) puis s�lection via l'id;

    �ventuellement, cr�ation d'un attribut unique selon la colonne et boucle sur tous les �l�ments poss�dant cet attribut;

  8. #8
    Membre habitu�
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 13
    Par d�faut
    Citation Envoy� par denisC
    Citation Envoy� par javatwister
    :
    Il dit qu'il veux des sommes par colonne JT. Ta solution ne fonctionne pas directement, mais je pense qu'il peut quand m�me y arriver
    oui tout a fait.
    mais en fait ma question n'est pas comment faire, �� c'est fait, et �� marche ; mais je voulais juste savoir qu'elle etait la m�thode la plus rapide ?
    faire des getElementById ou bien des table.rows.cell ?

  9. #9
    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
    �vite la syntaxe firstChild ... ou si tu le fais utilise un node cleaner ... voir FAQ ...

    colle leur un id fixe au moment de leur g�n�ration dynamique et utilise getElementById
    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 !

  10. #10
    Membre habitu�
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 13
    Par d�faut
    je ne trouve pas ce que tu appelles node cleaner dans la FAQ JS ?

  11. #11
    Expert confirm�

    Avatar de denisC
    Profil pro
    D�veloppeur Java
    Inscrit en
    F�vrier 2005
    Messages
    4 050
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur Java
    Secteur : Service public

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 4 050
    Par d�faut
    Citation Envoy� par mik007
    je ne trouve pas ce que tu appelles node cleaner dans la FAQ JS ?
    Projet de FAQ. C'est l'un des premiers threads de ce forum.

    A partir de la:
    http://www.developpez.net/forums/vie...860360#1860360

    Jt et moi d�batons du NodeCleaner.

  12. #12
    Membre Expert

    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    1 060
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 1 060
    Par d�faut
    Bonjour,

    Si le 1er affichage de la page te g�ne, pourquoi ne pas calculer sur le serveur avant l'envoi de celle-ci ?

Discussions similaires

  1. [MySQL] parcours de tableau associatif export csv
    Par littlebouda dans le forum PHP & Base de donn�es
    R�ponses: 3
    Dernier message: 10/12/2007, 17h16
  2. [Tableaux] Parcours de tableau multidimension
    Par grunk dans le forum Langage
    R�ponses: 3
    Dernier message: 27/07/2007, 10h30
  3. Recherche et parcours de tableau
    Par LEK dans le forum Algorithmes et structures de donn�es
    R�ponses: 5
    Dernier message: 31/05/2007, 21h41
  4. Code javascript qui parcours un tableau
    Par Taz_8626 dans le forum G�n�ral JavaScript
    R�ponses: 12
    Dernier message: 28/03/2006, 08h46
  5. [Debutant(e)]Pb parcours de tableau
    Par joquetino dans le forum Collection et Stream
    R�ponses: 7
    Dernier message: 22/09/2004, 09h08

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