我正在使用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调用以收集所有必要的信息,然后再操作一些东西。性能方面是否存在差异,是否有最佳实践"?
答案 0 :(得分:3)
为您的应用做最好的事情。如果要获取多个独立的数据集,并且在获取另一个数据之前不依赖于来自一个集合的数据,则无论如何都要同时请求所有数据。让浏览器担心限制它们。
另外,请勿使用您的计数方法确保它们全部完成。 jQuery使用AJAX请求返回一个方便的Deferred对象。未经测试和简化,但这应该让你开始:
$.when (
$.ajax('/data1'),
$.ajax('/data2'),
$.ajax('/data3')
).done(function (data1, data2, data3) {
console.log(arguments);
});
另见: