我知道在完成 ajax 调用之前有几种执行代码的方法,并且我知道使用 when() - 方法是推荐的方法。( http://api.jquery.com/jQuery.when/ )
我有一个loadFilter()
返回延迟对象的函数,如下所示:
function loadFilter() {
...code...
return $.ajax({
type: 'POST',
url: loadFile,
data: {object: obj},
dataType: 'html'
}).done(function(data) {
$(targetDiv).html(data);
initDrag();
$("body").removeClass("wait");
})
.fail(function(ts) {
alert(ts.responseText);
});
}
并且来自另一个函数的调用以不同的值getpage()
调用loadFilter()
函数两次:
function getpage() {
...code...
loadFilter(subcatId, "getnavigationpages", paginationDiv, doSearch);
loadFilter(subcatId, "getproducts", targetDiv, doSearch);
//When ajax-calls are done in function loadFilter.
$.when(loadFilter()).done(function(rsdata1) {
...code to execute when both loadFilter-functions above
});
}
我怎么知道 $.when() 何时执行???我想在调用两者 loadFilters()
时执行代码,但我认为!?$.when() 可以在第一次调用 loadFilter() 时执行,还是在第二次调用时执行?