1

いくつかのデータを取得する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の延期を認識していますが、これを使用したことがなく、この場合にどのように適用するかがわかりません。

誰か助けてもらえますか?

4

2 に答える 2

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
});
于 2012-07-26T16:49:35.410 に答える
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()が遅延オブジェクトまたは非遅延オブジェクトを引数として取ることができることも指摘する価値があります。これは、リクエストが同期または非同期の場合に機能できることを意味します。たまたま英国にいる場合は、.NET マガジンの今後の記事で、これについて詳しく説明します。

于 2012-07-26T16:49:48.487 に答える