2010-02-15 5 views
2

J'ai un Ext.tree.TreePanel utilisé avec AsyncTreeNodes. Le problème est que le noeud racine doit initialement avoir plus de 1000 descendants. J'ai réussi à optimiser les performances de la DB, mais les performances de JavaScript sont terribles - 25 secondes pour l'ajout et le rendu de 1200 nœuds. Je comprends que manipuler le DOM de la page est une opération lente, mais il y a peut-être un moyen d'optimiser le processus de rendu initial.Optimisation des performances Ext.tree.TreePanel

Répondre

1

Je ne pense pas que vous aurez beaucoup de chance d'optimiser un arbre avec autant de nœuds. Est-il possible d'utiliser une grille pour fournir l'information? Vous pourriez au moins mettre en place la pagination avec cela, et ce serait probablement beaucoup plus rapide. Vous pouvez également implémenter l'extension de ligne UX sur la grille, qui se comporte comme un arbre, en quelque sorte, pour chaque ligne.

3

Vous pouvez créer une interface utilisateur de nœud d'arborescence personnalisée dont l'empreinte DOM est inférieure. En d'autres termes, modifiez le code HTML utilisé pour créer chaque nœud de l'arborescence dans un code HTML moins détaillé (et probablement moins flexible).

voici quelques références pour le faire:

http://github.com/jjulian/ext-extensions/blob/master/IndentedTreeNodeUI.js

http://david-burger.blogspot.com/2008/09/ext-js-custom-treenodeui.html

Profitez.

+0

Vous pouvez également utiliser un DataView pour éclaircir l'empreinte DOM. –

Questions connexes