Extjs树面板加载器ajax调用

时间:2011-04-13 04:51:58

标签: javascript ajax extjs

我有一个带有加载器的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 :(得分:0)

abort : function(){
    if(this.isLoading()){
        Ext.Ajax.abort(this.transId);
    }
},

看起来它正在使用请求的特定事务ID调用abort,因此在我看来似乎没有任何异步问题。但是,您可以通过在中止和重新加载调用之间发出警报来测试这一点,以确保在重新加载函数创建新事务ID之前完全终止中止。

然而,我对此感到惊讶:

thisTree.root.reload();

正在没有中止的情况下工作。您的根节点是什么类型的节点? Ext.tree.AsyncTreeNode?我看到的更常见的方法是:

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

从我所看到的情况来看,节点并不总是有重载方法。

但需要更多信息。中止和调用重载时会发生什么? Firebug没有显示任何ajax请求?