我在面板上设置加载遮罩时遇到了问题。单击按钮后,将生成新的树存储(本地),这需要一些时间。只有在整个函数评估之后,加载遮罩才会显示一个毫秒。在我的代码中,console.log(0)
和console.log(1)
在整个函数处理之后显示,按钮本身会冻结几秒钟,然后解冻,之后控制台会显示0和1
。如何正确处理这种情况。以下是代码:
按钮定义:
xtype:'button',
text:'Rozdziel działki',
iconCls:'icon-map_link',
scope:this,
handler:function(){
console.log(0);
this.splitParcels();
}
分割包裹函数:-
splitParcels:function(){ // 创建遮罩层 var mask = new Ext.LoadMask(Ext.getBody(), {msg:"请稍候..."}); mask.show(); console.log(1);
// 移除所有节点 this.mgstore.getRootNode().removeAll();
console.log(this.response); var root_node = this.mgstore.getRootNode(); // 遍历每个方案及其包裹 Ext.each(this.response.plans, function(plan){ var plan_obj = { id:plan.plan.id, text:plan.plan.abbreviation, gsip_plan:plan, gsip_type:'plan', iconCls:'icon-map', expanded:true, leaf:false };
Ext.each(plan.parcels, function(parcel){ var parcel_obj = { id:parcel.parcel.id, text:parcel.parcel.name, leaf:true, gsip_plan:plan, gsip_parcels:parcel, gsip_type:'parcel', iconCls:'icon-vector' };
var planNode = root_node.appendChild(plan_obj); planNode.appendChild(parcel_obj); }); });
// 隐藏遮罩层 if (mask != undefined) mask.hide(); }