Bonjour à tous et merci par avance de vos conseils.

Voilà le contexte : je gère un arbre d'éléments, des répertoires, arbre sans limite de taille et de niveaux. A chaque élément est associé une checkbox.
lorsqu'une checkbox est cliquée, je coche toutes les checkbox des éléments fils et éventuellement ceux pères.

Pour cela j'ai écrit cette fonction, récursive :

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
 
function Gestion_checkbox(folder_id, boolean_check)
	{	// 1ere partie : mecanisme d'héritage
		var my_folder= findObj(folder_id);
		for (var i=0;i<window.document.ModifAcces.length;i++)
		{	
			for (var j=0;j<my_folder.nChildren;j++)
			{
				if (my_folder.children[j].xID==window.document.ModifAcces.elements[i].value.split("|")[0])
				{	if (boolean_check)
					{window.document.ModifAcces.elements[i].checked=true;
					 }
					else
					{window.document.ModifAcces.elements[i].checked=false; }
					Gestion_checkbox (window.document.ModifAcces.elements[i].value.split("|")[0],window.document.ModifAcces.elements[i].checked)
				}
			}
 
		}
		//2e partie :gere la cohérence en amont dans le cas ou on accorde des droits
		if (boolean_check)
			{Gestion_checkbox_amont(my_folder)
 
			 }
	}
Ce code focntionne bien mais produit d'énormes différences de vitesses entre IE et Mozilla : Pour une branche de 75 noeuds
- 4 s pour cocher les 75 fils avec Firefox
- 41 s pour cocher les 75 fils avec IE

Quelqu'un saurait m'aider à réduire cette différence sachant qu'on est à peu près tous d'accord pour constater que M$, c'est vraiment de la m..de !