我有几个ajax请求可以获取一些数据:
$.ajax({
url: '/bin/MVC/Reporting/GetReportTemplates',
type: "GET",
success: function (data) {
reportingMetaData.ReportTemplates = data.Data;
}
});
$.ajax({
url: '/bin/MVC/Reporting/GetReportTopTypes',
type: "GET",
success: function (data) {
reportingMetaData.ReportTopTypes = data.Data;
}
}
这些已经返回后,我想再运行一个功能。
我知道jquery延迟,但我从未使用它,并且不确定如何在这个实例中应用它。
有人可以帮忙吗?
答案 0 :(得分:4)
var a1 = $.ajax({
url: '/bin/MVC/Reporting/GetReportTemplates',
type: "GET"
});
var a2 = $.ajax({
url: '/bin/MVC/Reporting/GetReportTopTypes',
type: "GET"
});
$.when(a1, a2).then(function() {
//Both ajax requests have completed successfully
});
答案 1 :(得分:3)
您需要$.when()
。
var req_1 = $.ajax({...});
var req_2 = $.ajax({...});
$.when(req_1, req_2).done(function(response_1, response_2) {
//do something here when both requests done
});
值得指出的是,$.when()
可以将延迟的OR NON延迟对象作为参数。这意味着它可以在请求可以是同步或异步的情况下起作用。如果您碰巧在英国,我在.NET杂志上发表的一篇文章将更详细地介绍这一点。