事件触发,防止进入死循环
说明: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--;
});