Оптимизация производительности Ext.tree.TreePanel - PullRequest
2 голосов
/ 15 февраля 2010

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

Ответы [ 2 ]

3 голосов
/ 17 февраля 2010

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

Вот несколько ссылок для этого:

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

http://david -burger.blogspot.com / 2008/09 / внеш-JS-заказ treenodeui.html

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

1 голос
/ 15 февраля 2010

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

...