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 :

javascript tri tableau


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 25
    Points
    25
    Par défaut javascript tri tableau
    Salut tout le monde,

    Je vient de commener à travailler avec JS, j'ai trouvé une classe de tri des tableau js (javascripttoolbox)

    http://www.javascripttoolbox.com/lib/table/index.php

    pour faire le tri sans recharger la page, ca marche tres bien... sauf qu'avec bcp de données ca devient super lent

    J'ai essayé de regarder le code pour améliorer le fonctionnement mais je trouve des bouts de code que je comprends pas.

    déja la boucle qui ralentit le traitement est :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    for (var i=0,L=bodies.length; i<L; i++) {
    			var tb = bodies[i], tbrows = tb.rows, rows = [];
    			//for(i=0; i < tbrows.length;i++)alert(tbrows[i].innerHTML);
    			// Allow tbodies to request that they not be sorted
    			if(!hasClass(tb,table.NoSortClassName)) {
    				// Create a separate array which will store the converted values and refs to the
    				// actual rows. This is the array that will be sorted.
     
    				var cRow, cRowIndex = 0; 
    				if (cRow = tbrows[cRowIndex]){
     
    					// Funky loop style because it's considerably faster in IE
    					do {
    						if (rowCells = cRow.cells) {
    							var cellValue = (col<rowCells.length)?this.getCellValue(rowCells[col],useinnertext):null;
    							if (sortconvert) cellValue = sortconvert(cellValue);
    							rows[cRowIndex] = [cellValue,tbrows[cRowIndex]];
    							i++;
    						}
     
    					} while (cRow=tbrows[++cRowIndex])
    				}
     
    				// Do the actual sorting
    				rows.sort(newSortFunc);
     
     
    				//for(i=0; i<rows.length;i++) alert(rows[i]);
     
    				// Move the rows to the correctly sorted order. Appending an existing DOM object just moves it!
    				cRowIndex=0;
    				var displayedCount=0;
    				var f=[removeClass,addClass];
    				if (cRow=rows[cRowIndex]){
    					do { 
    						tb.appendChild(cRow[1]); 
    					} while (cRow=rows[++cRowIndex])
    				}
    			}
    		}
    précisemment je comprends pas les 2 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var cRow, cRowIndex = 0; 
    				if (cRow = tbrows[cRowIndex]){...
    Je vois pas comment la variable cRow est reconnue sans être initialisé?! aussi je comprends pas le if qui marche sans le double-égal (==) et ca bloque si je le mets.

    Si qlq un a une idée, j en serai reconnaissante (c'est urgent)

  2. #2
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    = est un opérateur d'affectation : Affecte une valeur à une variable
    C'est un peu bizarre de tester une affection.

    cRow est initialité à 0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var cRow, cRowIndex = 0;
    // ou
    var cRow=0;
    var cRowIndex = 0;

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 25
    Points
    25
    Par défaut
    Moi aussi g cru que c initalisé à zéro mais qd je fais une alerte de la valeur juste avant le test (if) il me donne undefined, alors qu'a l'interieur du test il est défini.

Discussions similaires

  1. [PHP-JS] Manipuler en Javascript un tableau dans un formulaire PHP
    Par Bouillons2 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/11/2010, 10h10
  2. Insertion javascript dans tableau HTML
    Par Rocca dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/08/2005, 12h28
  3. algorithme de tri tableau :afficher que les éléments unique
    Par sofiane61 dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 31/03/2005, 19h50
  4. [Débutant] Tri tableau String
    Par Sigwald dans le forum Collection et Stream
    Réponses: 22
    Dernier message: 14/05/2004, 08h55
  5. [langage] TRI TABLEAU ASSOCIATIF
    Par proner dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2003, 16h38

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