解决layer.confirm快速点击会重复触发事件的问题

  

layer.confirm快速点击会重复触发事件问题

  

<强> 1。问题描述:快速点击会出现,重复触发事件,像后台发起多次请求,此时后台极端=短时间内多次请求,会出现并发问题,数据脏读

  

解决layer.confirm快速点击会重复触发事件的问题

  

<强> 2。问题分析:查看layerUI的API发现,系统的确认是线程阻塞的,而layer.confirm是非阻塞的

  

解决layer.confirm快速点击会重复触发事件的问题

  

<强> 3。问题解决

  

方案1。防止重复触发事件,前台js加锁

  

方案2。后台代码加乐观锁

  

此时,方案1解决这个问题最佳

  

<强> 4。具体实现:

     //出库   输出:函数(){   console.log(“出库请求- - - - - -”);   var锁=false;//默认未锁定   var myconfirm=layer.confirm('是否确认出库& # 63;”,{btn:[”确定”、“取消”]},函数(指数){   console.log('成功');   console.log(锁);//如果锁(!){   锁=true;//锁定//发送   console.log (“ajax - - - - - -”);//发送ajax   . ajax({美元   url:“达博/. ./outBoundByTask.json”,   isAysn:假的,   类型:“得到”,   contentType: application/json,   数据:params.join (', '),   成功:函数(结果){      var res=$ .parseJSON(结果);   var代码=res.code;      如果(代码==0){   layer.msg(“操作成功!”);   window.location.reload ();   其他}{   layer.msg (res.msg);   }            }   });   }   layer.close (myconfirm);   }   函数(指数){   console.log(“失败”);   });   }         之前      

以上这篇解决layer.confirm快速点击会重复触发事件的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

解决layer.confirm快速点击会重复触发事件的问题