场景还原

测试同学反馈点击了一次操作,为什么会有两条操作记录?

我:????

排查思路

查看日志,看一下是不是发了两次请求,果不其然啊:

layer快速点击会触发多次回调

并发了,同一时间发送了两次请求,出现了脏写。

原因

系统的confirm是线程阻塞的,而layer.confirm是非阻塞的,这一点在官方的API文档中有提到。

解决方案

var lock = false;
layer.confirm('is not?',{btn:['确定','取消']},function(index){
    if(!lock) {
        //加锁防止多次回调
        lock =true;
        $.ajax({
            // .....
        })
    }
})

相关文章:

  • 2022-12-23
  • 2021-05-25
  • 2022-12-23
  • 2021-08-09
  • 2022-12-23
  • 2021-11-25
猜你喜欢
  • 2022-12-23
  • 2021-07-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-02
  • 2021-11-20
相关资源
相似解决方案