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 :
Ce code focntionne bien mais produit d'énormes différences de vitesses entre IE et Mozilla : Pour une branche de 75 noeuds
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) } }
- 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 !![]()
Partager