Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多个异步AJAX调用最佳实践_Javascript_Jquery_Ajax_Api_Asynchronous - Fatal编程技术网

Javascript 多个异步AJAX调用最佳实践

Javascript 多个异步AJAX调用最佳实践,javascript,jquery,ajax,api,asynchronous,Javascript,Jquery,Ajax,Api,Asynchronous,我有一个关于在一个页面上进行多个AJAX调用的“最佳实践”的问题 我需要做5个独立的异步调用。我知道$.ajax本质上是异步的,但我很好奇是否有一种“更干净”或“更好”的方法来执行多个ajax调用 包含多个AJAX调用的示例如下: $(function() { $.ajax({ type: "GET", url: "https://api.github.com/users/ralvarenga", dataType: "json", success: func

我有一个关于在一个页面上进行多个AJAX调用的“最佳实践”的问题

我需要做5个独立的异步调用。我知道$.ajax本质上是异步的,但我很好奇是否有一种“更干净”或“更好”的方法来执行多个ajax调用

包含多个AJAX调用的示例如下:

$(function() {
  $.ajax({
    type: "GET",
    url: "https://api.github.com/users/ralvarenga",
    dataType: "json",
    success: function(data) { console.log(data); }
  });
  $.ajax({
    type: "GET",
    url: "https://api.github.com/users/dkang",
    dataType: "json",
    success: function(data) { console.log(data); }
  });
});
提前谢谢你的帮助

您应该使用

或:


所以我让when-and-then方法起作用。虽然它的行为不像我想象的那样。看看这把小提琴,看看控制台里的反应。。。为什么单个请求只返回数据,而多个请求返回一个包含大量其他内容的较大对象。任何建议都将不胜感激!所以我最终得到了我想要的:,但我只是好奇是否有一种更简洁的方法,可以通过下面的“data[2].responseJSON”指定我只需要JSON响应。您的建议是,在两个ajax调用都成功时运行
done
然后
函数,然而,我不认为这是OP的要求。每次呼叫都可能失败或成功,而不会相互干扰(例如,同时加载新闻和产品列表)。只有在两个调用都需要成功才能继续时,才应使用此解决方案。
$.when($.ajax("/page1.php"), $.ajax("/page2.php")).done(function (a1, a2) {
    //all AJAX requests are finished
});
$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) )
    .then( successFunction, failureFunction );