多个AJAX调用的限制?

时间:2014-12-29 08:57:56

标签: javascript php sql ajax

上下文: 我有一个javascript文件,我有一个AJAX函数调用一个php文件返回数据并执行一个函数(一个SQL查询返回设置日期的记录,然后使用谷歌地图API绘制在地图上)。让我们称之为数据A

问题: 我需要的是能够获得下一天的数据并将其存储在一个数组中(让我们称之为数据B)并将其与第一组数据(数据A)进行比较。 根据我的理解,我需要在这一个内部进行另一次ajax调用,iv尝试了但似乎我无法获取数据,我可能对ajax的核心工作方式有误解。例如:

var data_a;
var data_b;
    $.ajax({
         type: "POST",
         url: scriptday,
         data: $("#dayForm").serialize(),
         error: function( data ) {
              console.log("Error: "+ data );
         },
         success: function( json ) {
              data_a = json
                  //start of inner ajax call
                  $.ajax({
                           type: "POST",
                           url: scriptday2,
                           data: $("#dayForm").serialize(),
                           error: function( data ) {
                                console.log("Error: "+ data );
                           },
                           success: function( json ) {
                                data_b = json
                               // access data_a here
                           }
                       }    
                  });
                  //end of inner ajax call

        }    
    });

编辑: 这样做的正确方法是将内部ajax调用存储在一个将data_a放入其中的函数中。

function innerAjax(data_a){
    $.ajax({
       .....
       //data_a can now be used here
    })
}

并在第一个ajax中将其称为

innerAjax(data_a);

这种方式以同步方式使用AJAX :) 感谢那些贡献的人!

1 个答案:

答案 0 :(得分:2)

不,如果您使用async ajax(并且看起来像这样),则不存在多个AJAX调用的限制。

对于你的问题 - 也许你需要正确等待两个ajax调用的结果,存储结果然后处理它们。