Показать сообщение отдельно
  #15 (permalink)  
Старый 06.09.2016, 08:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от destus
мне кажется как-то сложно для либы. Скорее всего дело ограничивается каким-нибудь json файлом
Читаем задание:

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

Если взять данные, уже готовые и в виде JSON отдать клиенту, то:

1) тем где Ajax должен работать придется писать пояснение, что "это ну типа тут Ajax"
2) как-то представить записи дерева, что уже так или иначе попытка описания хранения данных на сервере.

Если следовать букве задания, то:

Самое простое хранение дерева записей в базе, это ID+Prent. Записи первого уровня имеют parent равный 0, записи дочерние в качестве parent содержат id родителя.

Если выплюнуть данные клиенту в таком виде, тогда бы стояла задача построения дерева из данных, что было бы несколько иной задачей. Для облегчения построения его нужно было бы напрячь базу, если поступать традиционно - рекурсия (хотя вполне можно обойтись и без нее).

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

Клиенту только и остается в элемент списка вставлять вложенный список, если он еще не получен от сервера.

То есть, если знать как это организовано, то код сервера и клиента простой, жаждущему знаний это вполне по силам.
Ответить с цитированием