Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.10.2013, 12:05
Новичок на форуме
Отправить личное сообщение для ka-5 Посмотреть профиль Найти все сообщения от ka-5
 
Регистрация: 31.10.2013
Сообщений: 5

Динамическая загрузка в дерево
Здравствуйте!
Сильно не пинайте, я ещё только начинаю изучение ExtJs.

Хочу сделать динамическую загрузку дерева. В примерах вроде понятно, добавляем TreeStore, ему proxy с url-ем, а с сервера отдаём данные по запросам вида url?node=id
И тут у меня возникает ряд вопросов.

1. Данные беру из БД, данные в БД могут меняться. Хорошо, при изменении я через сокет как-нибудь сообщу клиенту об обновлении данных, и даже передам id конкретно тех записей, которые изменены. А может ли TreeStore перезагрузить и обновить на TreePanel только те узлы, о изменении которых я сообщаю? Или нужно всё дерево перезагружать?

2. Как настроить формат запроса вместо url?node=id чтобы был например url/node/id

Пока я не разобрался, как работать с TreeStore, пишу без него, обрабатываю события на узлах, подгружаю данные через сокет и обновляю узлы напрямую через NodeInterface. Но ведь это не правильно, идеологически неверно и просто мне не нравится.
Ответить с цитированием
  #2 (permalink)  
Старый 06.11.2013, 10:56
Новичок на форуме
Отправить личное сообщение для ka-5 Посмотреть профиль Найти все сообщения от ka-5
 
Регистрация: 31.10.2013
Сообщений: 5

Сообщение от ka-5 Посмотреть сообщение
1. Данные беру из БД, данные в БД могут меняться. Хорошо, при изменении я через сокет как-нибудь сообщу клиенту об обновлении данных, и даже передам id конкретно тех записей, которые изменены. А может ли TreeStore перезагрузить и обновить на TreePanel только те узлы, о изменении которых я сообщаю? Или нужно всё дерево перезагружать?
Сам нашёл ответ, всё дерево перезагружать не надо, достаточно только узел:

var store = treePanel.getStore();
var node = store.getNodeById( Id_of_serverside_changed_node );
if (node != null) {
    store.load({ node: node });
}

Последний раз редактировалось ka-5, 07.11.2013 в 09:53.
Ответить с цитированием
  #3 (permalink)  
Старый 21.11.2013, 15:25
Новичок на форуме
Отправить личное сообщение для ka-5 Посмотреть профиль Найти все сообщения от ka-5
 
Регистрация: 31.10.2013
Сообщений: 5

Обнаружилась ещё одна проблема.
При одновременном (асинхронном) вызове метода
store.load({ node: node });
из двух разных событий, в дерево от узла node загружаются сразу два экземпляра одного и того же поддерева. При чём это только в визуальном отображении, в самом store дерево остаётся корректным, однако лишний экземпляр поддерева в разметке оказывается "мёртвым" - не реагирует на события и не хочет удаляться.
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2014, 13:25
Новичок на форуме
Отправить личное сообщение для hyp1k Посмотреть профиль Найти все сообщения от hyp1k
 
Регистрация: 30.11.2009
Сообщений: 7

У меня были подобные проблемы, стал пользоваться dynatree. Документации много, пока что глюков не замечено.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамическая загрузка ковра из изображений Yzgramor Общие вопросы Javascript 1 02.10.2013 14:07
Динамическая загрузка скриптов demoniqus Общие вопросы Javascript 12 18.04.2013 19:50
динамическая загрузка скриптов dolas Events/DOM/Window 6 08.03.2013 06:07
Динамическая загрузка truetrix Общие вопросы Javascript 20 17.04.2011 21:28
Динамическая загрузка страницы ybiza Элементы интерфейса 11 23.02.2011 13:16