problèmes de perfs IE6/Firefox
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:
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 :x
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 ! :wink: