首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Ajax调用完成后执行函数

在Ajax调用完成后执行函数
EN

Stack Overflow用户
提问于 2014-04-25 10:40:58
回答 6查看 237K关注 0票数 49

我是Ajax的新手,我正在尝试在使用for循环的同时使用Ajax。在Ajax调用之后,我运行了一个函数,该函数使用在Ajax调用中创建的变量。该函数只执行两次。我认为Ajax调用可能没有足够的时间在循环开始之前进行调用。有没有办法在运行函数printWithAjax()之前确认Ajax调用?我不希望在Ajax调用完成之前执行printWithAjax()函数。任何帮助都将不胜感激。

代码语言:javascript
复制
var id;
var vname;
function ajaxCall(){
for(var q = 1; q<=10; q++){
 $.ajax({                                            
         url: 'api.php',                        
         data: 'id1='+q+'',                                                         
         dataType: 'json',
         async:false,                    
         success: function(data)          
         {   
            id = data[0];              
            vname = data[1];
         }
      });

       printWithAjax(); 

 }//end of the for statement
}//end of ajax call function
EN

回答 6

Stack Overflow用户

发布于 2014-04-25 11:21:44

尝试以下代码:

代码语言:javascript
复制
var id;
var vname;
function ajaxCall(){
for(var q = 1; q<=10; q++){
 $.ajax({                                            
     url: 'api.php',                        
     data: 'id1='+q+'',                                                         
     dataType: 'json',
     async:false,                    
     success: function(data)          
     {   
        id = data[0];              
        vname = data[1];
     },
    complete: function (data) {
      printWithAjax(); 
     }
    });

  }//end of the for statement
  }//end of ajax call function

只有在ajax“成功”之后,才会执行"complete“函数。因此,尝试在"complete“上调用printWithAjax()。这对你来说应该是可行的。

票数 68
EN

Stack Overflow用户

发布于 2016-09-28 16:36:19

您可以使用.ajaxStop().ajaxComplete()

.ajaxComplete()在页面上的每个AJAX请求完成后触发。

代码语言:javascript
复制
$( document ).ajaxComplete(function() {
  yourFunction();
});

.ajaxStop()在页面上的所有AJAX请求完成后触发。

代码语言:javascript
复制
$( document ).ajaxStop(function() {
  yourFunction();
});
票数 38
EN

Stack Overflow用户

发布于 2014-04-25 10:50:03

将.done()添加到函数中

代码语言:javascript
复制
var id;
var vname;
function ajaxCall(){
for(var q = 1; q<=10; q++){
 $.ajax({                                            
         url: 'api.php',                        
         data: 'id1='+q+'',                                                         
         dataType: 'json',
         async:false,                    
         success: function(data)          
         {   
            id = data[0];              
            vname = data[1];
         }
      }).done(function(){
           printWithAjax(); 
      });



 }//end of the for statement
}//end of ajax call function
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23283276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档