同时进行多个AJAX调用并连续进行它们之间有区别吗?

时间:2014-08-28 20:12:49

标签: javascript jquery ajax

我正在使用jQuery和jQuery Mobile制作移动应用程序,如果这很重要的话。

我的问题是,以这种方式执行多个AJAX调用是否更好?

例如,拥有一个计算所有ajax调用的变量,然后如果该变量最大化,则调用完整函数,例如:

var count = 0
$.ajax({
    //stuff
}).done({
    count++;
    if(count == 5){
        complete();
    }
});
...

或者最好在链中运行它们:

$.ajax({
    //stuff
}).done({
    $.ajax({
        //stuff
    }).done({
        $.ajax({
            //stuff
        }).done({
            //do complete stuff
        });
    });
});

应用程序需要进行多次API调用以收集所有必要的信息,然后再操作一些东西。性能方面是否存在差异,是否有最佳实践"?

1 个答案:

答案 0 :(得分:3)

为您的应用做最好的事情。如果要获取多个独立的数据集,并且在获取另一个数据之前不依赖于来自一个集合的数据,则无论如何都要同时请求所有数据。让浏览器担心限制它们。

另外,请勿使用您的计数方法确保它们全部完成。 jQuery使用AJAX请求返回一个方便的Deferred对象。未经测试和简化,但这应该让你开始:

$.when (
  $.ajax('/data1'),
  $.ajax('/data2'),
  $.ajax('/data3')
).done(function (data1, data2, data3) {
  console.log(arguments);
});

另见: