多个 AJAX 调用的限制

Restrictions of Multiple AJAX Calls?

本文关键字:调用 AJAX 多个      更新时间:2023-09-26

上下文:我有一个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 :)感谢那些做出贡献的人!

不,如果您使用异步 ajax(并且看起来确实如此),则不存在多个 AJAX 调用的限制。

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