使用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 requestsvar 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