如何在EXTJS TABPANEL做延迟加载

有没有知道extjs如何延迟加载的。比如TabPanel中有十几个panel我只显示第一个后面的panel我延迟加载,也可以通过事件延迟加载,有相关的解决方案或例子也行啊... 有没有知道extjs如何延迟加载的。比如TabPanel 中有十几个panel我只显示第一个
后面的panel我延迟加载,也可以通过事件延迟加载,有相关的解决方案或例子也行啊!
展开
 我来答
昆吾语梦0H971b
推荐于2016-09-23 · 超过15用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:21.4万
展开全部
首先创建一个TabPanel 对象 例如:main

main 里面有个首页对应其他十几个页面的按钮,点按钮添加一个tab :
var tab =main.getComponent(tabId);//得到tab组建 tabId为main的id
tab = main.add(new Ext.Panel({id:tabId,title:tabTitle,autoScroll:true,layout: 'fit',border:false,closable:true}));
main.setActiveTab(tab);

如果不用按钮 ,延迟加载可以用:
var loadmask = loadMaskModel;
loadmask.show();
loadmask.hide(); 在这个之后再main.add();

或者也可以监听 onload 事件 之后 在main.add();

如果你不嫌烦的话 在每个界面加一个定时器,
Ext.TaskMgr.start(Add);
var Add= {
run : function() {
setTimeout(

//main.add()的内容

), 10000);
},
interval : 30 * 1000 //每30秒执行一次

}
所有界面加载后记得关闭这个定时器。

或许还有跟好办法 但是这个要看你具体的要求是什么。
zq900226
2010-08-04 · TA获得超过500个赞
知道答主
回答量:130
采纳率:100%
帮助的人:99.2万
展开全部
你可以利用监听器 来实现 默认只显示第一个panel 当点击其他panel时 这时被点击的panel就被渲染到TabPanel中 那么你只需要监听一下这个方法就可以了
例如:
fileManagePanel.on('render', loadfileStore);//组建被渲染的时候进行加载数据
类似这样你还可以监听这个panel的其他方法,监听器非常好用 能实现很多功能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
csf851023
2010-08-13 · TA获得超过119个赞
知道答主
回答量:62
采纳率:0%
帮助的人:69.1万
展开全部
其实,Ext.TabPanel 中已经内置了延迟加载。你只要在TabPanel 里加一个属性deferredRender : true,就可以了,此属性决定tab面板是否只有在第一次访问时才渲染(缺省为true)。我试过。加载快多了。。。。

祝你也能成功。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式