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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<tr onclick="selec(this)">
  <td>blabla</td>
</tr>
Cette methode, lors d'un grand tableau, met pas loin de une seconde a me colorier le tr selectionne (vieux portable mac G4).

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.
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');
		}
	}
Qui me fais arriver a peut pret au meme resultat.

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.