Древовидная структура на основе данных из базы данных + более быстрые древовидные операции - PullRequest
1 голос
/ 16 мая 2011

Я бы хотел, чтобы на моем сайте было дерево уровня 'n', основанное на данных из базы данных. Я принял решение о структуре данных Java. Но я боюсь, что при попытке рендеринга моих данных из структуры данных Java (общий элемент дерева с родителем, список детей) я могу потерять некоторую производительность на стороне клиента.

Сейчас проверяю 2 варианта:

  • Попробуйте отрендерить мою структуру данных Java, используя простые теги JSP / Javascript или Ajax
  • Подготовьте JSON из моей структуры данных и работайте с JSON на моей стороне клиента. Планируя использовать GSON для сериализации и десериализации, не знаю, является ли это издержками. Потому что мне постоянно приходится обновлять свое дерево на основе фильтров / поиска и т. Д.

Операции с деревьями, которые мне нужно поддерживать:

  1. Обход - более чем одна ветвь может быть раскрыта за раз, мое дерево (больше графика) может иметь одну и ту же ветвь, повторяющуюся на разных уровнях
  2. Мне нужно отобразить счетчик, и счетчик может измениться в зависимости от примененных фильтров (например, цена <20) </li>

Какой лучший способ справиться с этим.

1 Ответ

2 голосов
/ 16 мая 2011

Насколько велико ваше дерево?Тысячи или миллионы элементов?Если число узлов <1000, производительность не является проблемой. </p>

И в большинстве случаев это число будет <10, поскольку с помощью AJAX вы можете перемещать каждую ветвь дерева по отдельности, поэтомунаибольшая отрасль насчитывает - несколько.Скажем, самая большая ветвь 1000, но средняя ветвь имеет 10 узлов.В этом случае вы можете игнорировать производительность. </p>

Что вы должны сделать: Выберите подходящую среду JavaScript, чтобы построить дерево для вас.Не пытайся сам.Есть тонкие ошибки браузера и различия, которые сведут вас с ума.Вместо этого попробуйте что-то вроде jQuery Treeview plugin .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...