extjs Tree中避免连续单击会连续请求服务器

Posted 女友在高考

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了extjs Tree中避免连续单击会连续请求服务器相关的知识,希望对你有一定的参考价值。

应用场景:在项目中我要做一个左边是tree,右边是panel的界面。当我单击tree中的一条记录时,发送请求,并将结果显示在右边的panel中。做完之后发现,如果连续单击就会连续请求两次服务器,毕竟用户不知道是应该单击tree中的记录还是双击。

解决思路:利用一个boolean类型的flag来判断,并使用了 Ext.util.DelayedTask延时的技术。我先将flag设为true,点击一次之后马上设置为false,并在一秒延迟后将其重新设置为true。并且只有当flag为true时,单击才会请求服务器。

flag:true,
listeners:{ scope:this, cellclick:function(view, td,cellIndex,record, tr, rowIndex, e, eOpts ){ if(this.flag||this.flag==undefined){ //为什么这里要加一个this.flag==undefined,因为第一次点击时flag没有被初始化为true,而是为undefined,具体原因我不知道 //这里写发送请求的代码 this.flag=false; } var task = new Ext.util.DelayedTask(function(){ this.flag=true; }); task.delay(1000); //避免重复点击 } },

这样就解决了。1秒以内点击几次都只会发送一次请求。




以上是关于extjs Tree中避免连续单击会连续请求服务器的主要内容,如果未能解决你的问题,请参考以下文章

标签a设置单击事件,当连续单击时,会选择文本,怎么弄

在 python tkinter 中每次连续单击后都会触发双击事件

SpringSecurity3无法拦截连续多次点击出起的请求

28 伪造连续的ICMP数据请求包

28 伪造连续的ICMP数据请求包

QTcpSocket 在工作进程中连续写入。避免内存泄漏的最佳实践