使用jQuery的并行异步Ajax请求

我想根据多个ajax / json请求的结果来更新页面。使用jQuery,我可以“链接”回调,例如以下非常简单的示例:

$.getJSON("/values/1", function(data) {

// data = {value: 1}

var value_1 = data.value;

$.getJSON("/values/2", function(data) {

// data = {value: 42}

var value_2 = data.value;

var sum = value_1 + value_2;

$('#mynode').html(sum);

});

});

但是,这导致请求是串行发出的。我宁愿以一种并行方式发出请求,并在完成所有操作后执行页面更新的方法。有什么办法吗?

回答:

尝试以下解决方案,该解决方案可以支持任意数量的并行查询:

var done = 4; // number of total requests

var sum = 0;

/* Normal loops don't create a new scope */

$([1,2,3,4,5]).each(function() {

var number = this;

$.getJSON("/values/" + number, function(data) {

sum += data.value;

done -= 1;

if(done == 0) $("#mynode").html(sum);

});

});

以上是 使用jQuery的并行异步Ajax请求 的全部内容, 来源链接: utcz.com/qa/415311.html

回到顶部