Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / yui, dynamic_tree. Проблема динамической загрузки / 4 сообщений из 4, страница 1 из 1
21.08.2008, 08:11
    #35498224
324f4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yui, dynamic_tree. Проблема динамической загрузки
Доброго времени суток други! Здравы будете!
У меня такой вопросик, кто знаком с компонентами yui.
В yui есть такой компонент -dynamic_tree, который формирует динамические деревья. То есть при выборе узла скрипт "лезет" на сервер и вытаскивает узлы-потомки. Все то хорошо, но при клике на каком-либо узле дочерние узлы динамически загружаются только при первом клике после инициализации.
При последующем закрытии/открытии этого узла скрипты уже никуда не "лезут", а показывают дочерние узлы уже локально. А если например, на удаленном сервере создали новую папку, то она уже не отобразится.
Подскажите, где, что можно изменить, чтобы при клике на узле он всегда динамически загружал под-узлы (всегда загружал их с сервера).
Там используются библиотеки
treeview-min.js
connection-min.js
event-min.js
yahoo-min.js
...
Рейтинг: 0 / 0
22.08.2008, 21:25
    #35502607
М.Голованов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yui, dynamic_tree. Проблема динамической загрузки
Я это делаю - правда, не по причине обновлений на сервере, а просто из желания сэкономить на памяти (при большом дереве все это хозяйство сильно тормозит).

Код такой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
// создаем объект
var pTree=new YAHOO.widget.TreeView("prjgr"+__lPrjID);
// указываем функцию, которая динамически грузит ветки
pTree.setDynamicLoad(_loadSec);
// флажок состояния объекта 
pTree.__onCollapse=false;
// рекурсивная функция - удаляет дочерние узлы указанного узла дерева и затем сам узел
pTree.__deleteNode=function(node){
  while(node.children.length) this.__deleteNode(node.children[ 0 ]);
  this.popNode(node);
};
// а это главная функция - обработчик события закрытия - при закрытии ветки вычищает все ее содержимое
pTree.onCollapse=function(node){
  // если флаг выставлен, уходим - мы как-то не туда пришли и дерево уже в процессе закрытия узла  
  if(node.tree.__onCollapse) return;
  // выставляем флаг
  node.tree.__onCollapse=true;
  // начинаем чистить
  try{
    // сначала все прячем
    node.hideChildren();
    // вычищаем все дочерние узлы данного узла
    while (node.children.length) node.tree.__deleteNode(node.children[ 0 ]);
    // меняем флаги, чтобы узел перешел в состояние "не открыт"
    node.childrenRendered=false;
    node.dynamicLoadComplete=false;
    node.getChildrenEl().innerHTML="";
  }catch(e){ showException(e); }
  // сбрасываем флаг
  node.tree.__onCollapse=false;
  // готово
  return;
};
function showException(e){
  var message=e.name+": "+e.message+"\r\n--------------------------------------------";
  for(var prop in e) if(prop!="name" && prop!="message") message=message+"\r\n  "+prop+"="+e[prop];
  alert(message);
}
...
Рейтинг: 0 / 0
22.08.2008, 21:30
    #35502613
М.Голованов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yui, dynamic_tree. Проблема динамической загрузки
Забыл добавить, что этот обработчик переводит узел в состяние "не открыт", и при последующем открытии (клике на узле) запустится динамическая загрузка со всеми Вашими обновлениями на сервере. Ну, да это и итак ясно.

Я вообще-то такой стандартный обработчик вешаю во всех случаях. И память экономит, и возможные обновления на сервере позволяет отображать.
...
Рейтинг: 0 / 0
25.08.2008, 09:17
    #35503846
324f4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yui, dynamic_tree. Проблема динамической загрузки
Огромное спасибо! Здоровеньку булы!!!!!!!
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / yui, dynamic_tree. Проблема динамической загрузки / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]