Extjs Tree Panel загрузчик ajax вызов - PullRequest
1 голос
/ 13 апреля 2011

У меня есть TreePanel с загрузчиком. У меня также есть TextField, который после каждого нажатия клавиши (с буфером) перезагружает загрузчик.

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

// abort the previous call. Works, but then cant reload
thisTree.loader.abort(); 

// This works without the abort
thisTree.loader.baseParams.quicksearch_string = val;
thisTree.root.reload();.

Надеюсь, мне не хватает чего-то фундаментального, но, кажется, не могу понять ...

1 Ответ

0 голосов
/ 21 апреля 2011
abort : function(){
    if(this.isLoading()){
        Ext.Ajax.abort(this.transId);
    }
},

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

thisTree.root.reload();

работает без прерывания.Какой тип узла является вашим корневым узлом?Ext.tree.AsyncTreeNode?Более распространенный метод, который я вижу:

tree.getLoader().load(tree.root);

Как я вижу, узлы не всегда имеют метод перезагрузки.

Хотя требуется больше информации.Что происходит при прерывании вызова и перезагрузке?Firebug не показывает никаких запросов ajax?

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