首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >两个AJAX调用:成功后将内容同时呈现给浏览器

两个AJAX调用:成功后将内容同时呈现给浏览器
EN

Stack Overflow用户
提问于 2011-02-16 09:03:36
回答 4查看 384关注 0票数 0

我有两个AJAX调用的问题。我从一个jquery对象调用它。我希望在AJAX调用成功后,首先获得内容的人等待呈现它,直到第二个AJAX请求也接收到内容。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-16 09:08:05

你可以这样做:

代码语言:javascript
运行
复制
(function() {
   var executedAmount = 0;
   var datas = {};
   //Ajax call 1:
   $.ajax({
      'success': function(data) {
          executedAmount++;
          datas[0] = data;
          callBack();
      }
   });
   //Ajax call 2:
   $.ajax({
      'success': function(data2) {
          executedAmount++;
          datas[1] = data2;
          callBack();
      }
   });
   function callBack() {
      if (executedAmount == 2) {
          //Do something with datas here
      }
   }
})();
票数 1
EN

Stack Overflow用户

发布于 2011-02-16 09:24:46

如果您可以使用jQuery 1.5,那么这将解决您的问题。

$.when()简介

示例:两个ajax请求成功后执行函数。(有关ajax请求的成功和错误案例的完整描述,请参阅jQuery.ajax()文档)。

代码语言:javascript
运行
复制
$.when($.ajax("/page1.php"), $.ajax("/page2.php")).done(function(a1,  a2){
    /* a1 and a2 are arguments resolved for the 
        page1 and page2 ajax requests, respectively */
   var jqXHR = a1[2]; /* arguments are [ "success", statusText, jqXHR ] */
   if ( /Whip It/.test(jqXHR.responseText) ) {
      alert("First page has 'Whip It' somewhere.");
   }
});
票数 1
EN

Stack Overflow用户

发布于 2011-02-16 09:15:17

为了补充上面的答案,您可以只测量datas的长度,而不是使用单独的变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5011431

复制
相关文章

相似问题

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