栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

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

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

2.问题分析 :查看layerUI的API发现,系统的/confirm/i是线程阻塞的,而layer./confirm/i是非阻塞的

3.问题解决

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

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

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

4.具体实现:

 //出库
 output: function () {
   console.log("出库请求---");   	  
   var lock=false;//默认未锁定
   var myconfirm=layer.confirm('是否确认出库?',{btn: ['确定','取消']},function(index){
      console.log('success');
      console.log(lock);
//
if(!lock){
      	 lock=true;//锁定
 //发送
console.log("ajax---");
 //发送ajax
 $.ajax({
  url: '/dubbo/../outBoundByTask.json',
  isAysn: false,
  type: 'get',
  contentType: 'application/json',
  data:params.join('&'),
  success: function (result) {
 	
  	var res=$.parseJSON(result);
  var code=res.code;
  	
  	if(code==0){
  		layer.msg("操作成功!");
  		window.location.reload();
  	}else{
  		layer.msg(res.msg);
  	}
  	
   

  }
 });
}
layer.close(my/confirm/i);
      }
      ,function(index){
console.log('fail');
      });
    }
     
    

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/73445.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号