在完成之前不重新执行功能

时间:2013-05-30 19:28:44

标签: javascript jquery function

我有一个包含数百行的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;
      }
}

这看起来对你不对吗?我的缺陷在哪里?如果您认为这有意义,可能错误在未发布的代码中的其他位置。感谢您的反馈!

1 个答案:

答案 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;
      }