我有一个包含数百行的JS函数。我需要确保在完成上一次调用之前不再调用该函数。
所以我尝试了这个:
var executing = false;
function myFunc(){
//stop executing if it's already executing
if(executing){
return false;
}
executing = true;
/* the main function with ajax-calls etc */
$.ajax({
type: "POST",
url: "/"+method+action,
data: "a=1",
success: function(data){
//the inner function logic...
executing = false;
}
}
这看起来对你不对吗?我的缺陷在哪里?如果您认为这有意义,可能错误在未发布的代码中的其他位置。感谢您的反馈!
答案 0 :(得分:0)
尝试为jquery ajax添加async
选项,并将其设置为false以生成同步请求:
$.ajax({
type: "POST",
async :false,
url: "/"+method+action,
data: {a:1},
success: function(data){
//the inner function logic...
executing = false;
}