layer.confirm快速点击会重复触发事件问题
<强> 1。问题描述:强>快速点击会出现,重复触发事件,像后台发起多次请求,此时后台极端=短时间内多次请求,会出现并发问题,数据脏读
<强> 2。问题分析:强>查看layerUI的API发现,系统的确认是线程阻塞的,而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快速点击会重复触发事件的问题