Bonjour,
Je m'interroge sur l'optimisation de mon javascript, lorsque je veux detecter des event 'click'. J'utilise prototype.
J'ai une table html de longueur variable, pouvant aller a plus de 1000 lignes.
Un clique sur une ligne permet de realiser une action sur cette ligne. Ici, je ne parlerai que de selection/deselection.
Au debut, j'utilisais un onclick qui appelle la fonction toogleSelect avec en argument this.
Chaque ligne du tableau contient donc le onclick :Cette methode, lors d'un grand tableau, met pas loin de une seconde a me colorier le tr selectionne (vieux portable mac G4).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <tr onclick="selec(this)"> <td>blabla</td> </tr>
J'ai voulu ensuite utiliser les observeur d'evenement :
Je clique, l'evenement declenche la fonction qui recupere le parent de l'element cliquer. Si une balise td a ete clique, alors je recupere le tr qui sera retenu comme selectionner.
Qui me fais arriver a peut pret au meme resultat.
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 Event.observe(window, 'load', function() { Event.observe(document.body, 'click', function(event) { var element = Event.element(event).up(); if ('TR' == element.tagName) selec(element); }); }); function selec(elem) { if (elem.hasClassName('marked')) { elem.removeClassName('marked'); } else { elem.addClassName('marked'); } }
Avez vous un avis sur la methode la plus correcte a utiliser ?
Et un conseil d'optimisation pour ameliorer les perfs de mon script ?
Merci pour vos conseils,
Z.
Partager