easyUI的treegrid添加节点(append)时间过长,设置等待(wait)遮罩效果

来源:互联网 发布:php继承的几种方式 编辑:程序博客网 时间:2024/04/30 12:15

如题所述,在treegrid中,一次添加多个节点时,时间很长,但easyUI并无显示等待信息,让人以为是陷入了死循环,或者死机了,用户体验很差。

本来,treegrid(或者datagrid)有所谓的loadMsg,但只在加载数据时显示。添加节点,则不见有这种机制。

只能自己动手,丰衣足食了。

像很多次寻找答案一样,在网上搜索了许久,基本上都是一些互相抄袭,似是而非,不知所谓的垃圾。作者煞有介事地这样说,但有没有实际应用过,到底行不行,很让人怀疑。

或者只贴一点代码,缺乏足够的解释,让人变成丈二金刚。

经过一番努力,终于达到我自己想要的效果:

从一棵树中选中了许多节点,一次性复制到另一棵树。期间耗时比较长,会先显示等待信息;添加完成以后,等待消息消失。

没有代码我说个J8:


应用场景:

easyUI的一个对话框:

<div id="dlg_Add_template" class="easyui-dialog"   style=" width:600px; ">……</div><script type="text/javascript">$('#dlg_Add_template').dialog('open');</script>

这个对话框上有1个tree,1个treegrid。需要从tree上选择节点,复制到treegrid。

[javascript] view plaincopy
  1. function _loadwaiting(){//显示等待信息  
  2.     var wrap = $("#dlg_Add_template");  
  3.     $("<div class=\"datagrid-mask\"></div>").css({display:"block",width:wrap.width(),height:wrap.height()}).appendTo(wrap);  
  4.     $("<div class=\"datagrid-mask-msg\"></div>").html("please wait...").appendTo(wrap).css({display:"block",left:(wrap.width()-$("div.datagrid-mask-msg",wrap).outerWidth())/2,top:(wrap.height()-$("div.datagrid-mask-msg",wrap).outerHeight())/2});  
  5. }  
  6. function _removeloading(){//隐藏等待信息  
  7.     var wrap = $("#dlg_Add_template");  
  8.     wrap.find("div.datagrid-mask-msg").remove();  
  9.     wrap.find("div.datagrid-mask").remove();  
  10. }  

以上代码从参考文章摘取,但经过改写。原文是对easyUI的所谓扩展,仍然只支持数据加载才显示。


然后调用:

[javascript] view plaincopy
  1. function _copyTo() {  
  2.     _loadwaiting();//显示等待信息  
  3.   
  4.     //将选中节点复制到目标树  
  5.     (代码略)  
  6.   
  7.     _removeloading();//隐藏等待信息  
  8. }  

结果意料之中,开始复制节点时,等待信息根本没来得及显示,直到复制完成才一闪而过,根本没有达到应有的效果!

这时应引入异步机制,最好有回调函数!

但treegrid并无提供相应的事件。受阮一峰的文章启发,可以模拟一下,用setTimeout:

[javascript] view plaincopy
  1. function copy(){  
  2.     _loadwaiting();//显示等待信息  
  3.   
  4.     setTimeout(_copyTo,500);//500毫秒后开始复制工作  
  5. }  
  6. }  
  7. function _copyTo() {  
  8.     //将选中节点复制到目标树  
  9.     (代码略)  
  10.   
  11.     _removeloading();//隐藏等待信息  
  12. }  

参考文章:

http://www.cnblogs.com/dreamcat/archive/2010/10/30/easyui_datagrid_mask.html

http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 约客户客户说忙怎么办 第一天来姨妈痛怎么办 痛经痛的很厉害怎么办 工作第一天被辞怎么办 第一天练车紧张怎么办 到新公司第一天怎么办 我妈上班别人欺负怎么办 欺负别人他妈来找了怎么办 家人都欺负我妈怎么办 人老了日不动了怎么办? 日照职业技术学院公租房怎么办留宿 眼镜上沾了胶水怎么办 近视镜片刮花了怎么办 墨镜镜片磨花了怎么办 邻居养狗味道大怎么办 邻居不让养狗了怎么办 养狗地板有味道怎么办 狗狗嘴巴被大狗咬肿了怎么办 花了钱心里难受怎么办 狗在屋里有味道怎么办 养狗家里有异味怎么办 养狗房子有味道怎么办 狗身上有腥臭味怎么办 狗狗不想养了怎么办 药流2天后没出血怎么办 药流当天血多怎么办 怀孕四十天不想要怎么办 人流后出血量大怎么办 药流一直不出血怎么办 药流一直不见红怎么办 药流12天还流血怎么办? 把别人车刮了怎么办 车划掉漆了怎么办啊 倒车时碰了车怎么办 车头掉了一点漆怎么办 新买的车被刮了怎么办 白色车车头漆掉了一小块怎么办 临时牌照丢了1张怎么办 临牌遗失了一张怎么办 临牌只有一张了怎么办 临时牌丢了一个怎么办