2010-02-15 3 views
2

У меня есть Ext.tree.TreePanel, используемый с AsyncTreeNodes. Проблема в том, что изначально корневой узел должен иметь более 1000 потомков. Мне удалось оптимизировать производительность БД, но производительность JavaScript ужасна - 25 секунд для добавления и рендеринга 1200 узлов. Я понимаю, что манипулирование DOM страницы - медленная операция, но, возможно, есть какой-то способ оптимизировать процесс первоначального рендеринга.Оптимизация производительности Ext.tree.TreePanel

ответ

1

Я не думаю, что вам удастся оптимизировать дерево с таким количеством узлов. Можно ли использовать сетку для доставки информации? Вы могли бы хотя бы настроить пейджинг с этим, и это, вероятно, будет намного быстрее. Вы также можете реализовать расширитель строк UX на сетке, который ведет себя как дерево, вроде, для каждой строки.

3

Вы можете создать пользовательский интерфейс пользовательского дерева, который имеет более низкий размер DOM. Другими словами, измените HTML, который используется для создания каждого узла дерева на несколько менее подробный (и, вероятно, менее гибкий) HTML.

вот некоторые ссылки для делать это:

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

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

Наслаждайтесь.

+0

Вы также можете использовать DataView для облегчения слежения за DOM. –

Смежные вопросы