Как реализовать ресурсоемкое дерево в GWT?

Доброго времени суток, интересует решение проблемы с деревом.


Нужно, что бы в дерево можно было поместить до 10к узлов на одном уровне, сейчас браузер жутко тормозит, а дерево формируется около 1 минуты для 4к+ узлов, это не приемлемо, какие есть варианты решения проблемы?
  • Вопрос задан
  • 3057 просмотров
Пригласить эксперта
Ответы на вопрос 3
gricom
@gricom
Ленивая загрузка. Т.е. показывать только ту ветку, которую смотрит пользователь, потому что 4к узлов он всё равно просмотреть не в состоянии.
Ответ написан
@BiTHacK
Я реализовывал так: на каждом уровне выводил не более 50 элементов, если элементов более 50, то 51м выводил фиктивный элемент [загрузить ещё]. Потенциально, если требуемый элемент на уровне последний, а элементов очень много, то получается неудобная догрузка порциями, а в конце концов выходит то же самое тормозное дерево. Чтобы решить эту проблему можно сделать фильтрацию дерева.
Ответ написан
Комментировать
@bobzer
Java EE Developer
Как вариант: попробуйте взглянуть как-то по-другому на свое дерево. Понять, что на самом деле хочет сделать пользователь. Я это к тому, что уже сказали о том, что вряд-ли такое огромное дерево кто-то будет смотреть. Может быть, там вообще не нужно именно дерево?

Пример: каталоги в интернет-магазинах представляют собой дерево, листьями которого являются товары. Очень распространенная реализация — пользователю раскрывается дерево до тех пор, пока он не дойдет до листьев, и тут уже интерфейс переходит в табличный вид.

А может, вашему пользователю вообще не нужно последовательно идти по всему древу, может ему удобнее ввести какое-то условие фильтрации и сделать сквозную выборку, не зависящую от уровня? В общем, IMHO — с деревом проблем нет, а вот насчет правильности постановки реализуемой Вами задачи есть сомнения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы