我正在尝试使用JQuery在HTML中完成以下操作序列。
我已经阅读了这篇文章和这篇文章,但它们没有提供一种解决方案,可以在所有查询完成后运行代码。
- 构建URL列表
- 使用$.getJSON(url)并行请求每个URL
- 等待所有请求完成或失败(可能会出现404错误)
- 获取所有已完成JSON请求的数据并执行某些操作。
$.when
不运行,因为它立即中止。您可以以某种方式覆盖ajax请求,使其不会失败,而是返回空源吗?我已经阅读了这篇文章和这篇文章,但它们没有提供一种解决方案,可以在所有查询完成后运行代码。
function fetchData() {
queries = [];
//urls is initialized somewhere else containing all urls
for(var url in urls) {
queries.push($.getJSON(url));
}
$.when.apply(this, queries).done(function() {
console.log("Finished all queries, got "+arguments.length+" results");
//Now arguments is a array containing the results of all requests
}
//function returns instantly, no problem!
}