yii2事件触发,防止死锁

事件触发,防止进入死循环

说明:A操作会触发B操作.在B操作中再次执行A操作.此时要避免再次触发B操作

save方法会触发beforeSave,afterSave
update会触发beforeUpate,afterUpdate
insert会触发beforeInsert,afterInsert

解决方法

#初始化层级_exec_level = 0
#以update操作
$this->_exec_level++;
if($this->_exec_level==1 && method_exists($this,'beforeUpdate')){
    $this->beforeUpdate();
}
$this->_exec_level--;
#具体的update操作 $this->execUpdate()
$this->_exec_level++;
if($this->_exec_level == 1 && method_exists($this,'afterUpdate')){
    $this->afterUpdate();
}
$this->_exec_level--;
#create操作
$this->_exec_level++;
if($this->_exec_level == 1 && method_exists($this,'afterCreate')){
    $this->afterCreate();
}
$this->_exec_level--;

one click方案

网页点击事件响应,只有当前操作执行完成之后才会接受下一次的事件响应.

$(".ajax_modal").click(function(){
   $(this)._exec_level++;
   if($(this)._exec_level==1){
        ..... 具体的操作
   }
   $(this)._exec_level--;
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值