jquery で複数の ajax 処理が終わったらある処理をしたいとき

var requests = [
    { url: 'http://...', settings: { ... } },
    { url: 'http://...', settings: { ... } },
    { url: 'http://...', settings: { ... } }
];
 
var dfds = [];
for (var i =0; i < requests.length; i++) {
    req = requests[i];
    dfd = $.ajax(req.url, req.settings);
    dfds.push(dfd);
}
 
$.when.apply($, dfds).done(function() {
    //処理
})

ってやるとdedsの処理がすべて終わったら特定の処理を行うことができる。
jQuery.ajax のコールを行って、戻り値として得られる jQuery.Deferred を dfds 配列に格納して
$.when.apply($, dfds).done で全ての Ajax コールの終了を待機してる。
なるほど。