extjs 异步加载树的构建

本文介绍如何使用ExtJS中的TreePanel实现异步加载数据,通过监听'beforeload'事件来动态请求节点数据,有效减少页面加载时间。

    在一个目录层次比较多的Tree中,一次性构造一棵树,不是一个好的实践,因为那样在Tree加载时,会耗用过多的时间,所以,利用异步的方式构建Tree就显得重要了。

    Ext.tree.TreePanel从机制上,提供了异步加载的机制,通过对‘beforeload’事件的响应:

var treeUrl ='url';
new Ext.tree.TreePanel({
...
   root : new Ext.tree.AsyncTreeNode({
				id:'root'
				}),

   listeners : {
	'beforeload':function(node){
		if(node.id == 'root')
		{
			tree.loader.dataUrl=treeUrl;
		}
		else
		{//Url和需要的参数
			tree.loader.dataUrl=treeUrl+'?id='+node.id+'&text='+encodeURI(encodeURI(node.text));//
		}
	}
	}
});

 ExtJS会自动的处理这个事件的调用:当TreeNode的leaf属性为false,第一次打开时,就调用所定义的url,加载下级数据,且这个数据只加载一次。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值