Javascript AJAX-具有顺序更新的并行调用?

Javascript AJAX-具有顺序更新的并行调用?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一张桌子。最初它是空白的。总共应该有10行。为此,每一行必须进行ajax调用并获取数据。总共有10个并行AJAX调用。并且要求也按顺序更新行。这意味着即使第5行的数据在第2行之前,第5行的数据也不会更新,直到第2、3和4行被更新。我们如何实现这一点?一个解决方案可能是使用jQuery的promise接口,同时向$传递一系列承诺。当使用应用时: var urls = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // return a promise for each u

我有一张桌子。最初它是空白的。总共应该有10行。为此,每一行必须进行ajax调用并获取数据。总共有10个并行AJAX调用。并且要求也按顺序更新行。这意味着即使第5行的数据在第2行之前,第5行的数据也不会更新,直到第2、3和4行被更新。我们如何实现这一点?

一个解决方案可能是使用jQuery的promise接口,同时向
$传递一系列承诺。当使用
应用
时:

var urls = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// return a promise for each url
function getData(url) {
  return $.ajax({
    url: url
  });
}

// return an array of promises
function getPromises(urls) {
  return urls.map(function (url) {
    return getData(url);
  });
}

// when all the promises have been returned loop over the returned
// data and update the table sequentially with each row
$.when.apply(null, getPromises(urls)).then(function () {
  for (var i = 0, l = arguments.length; i < l; i++) {
    // update row with the data from arguments[i]
  }
});
var url=[1,2,3,4,5,6,7,8,9,10];
//返回每个url的承诺
函数getData(url){
返回$.ajax({
url:url
});
}
//回报一系列承诺
函数getPromises(URL){
返回url.map(函数(url){
返回getData(url);
});
}
//当所有承诺都已返回时,循环返回
//数据,并使用每行按顺序更新表
$.when.apply(null,getPromissions(URL)).then(函数(){
for(var i=0,l=arguments.length;i

请注意,我还没有测试过这段代码,但这肯定是我要尝试的路线。

为什么不同时获取所有10行?使用ajax
async:false
@ozil-我希望调用是异步的,而不是另一行way@gopalrao我明白了,你试过什么?@jumpingcode的意思是你可以更改“url”endpoint因此,不是每个都检索1个数据,而是可以检索所有10行,但这只有在您可以更改课程的endpoint时才起作用。这是一个很好的建议(利用此处的承诺),而且肯定是最干净的处理方法。我唯一要更改的是链接
,然后
s,这样第5行只依赖于1..4,而不是其余的,所以它更急切地排序。