0

我需要发出一个 ajax 请求,然后处理从服务器返回的一些数据。我想早点提出这个请求,然后文件就准备好了。但是我只有在文件准备好后才能处理数据。我有一个想法来做这样的事情:

$.when($(document).ready(),
       $.ajax(/*some request*/)).done(function(){//processing data from the server});

它将如何运作?还是有任何其他选择可以得到我想要的结果

4

3 回答 3

0

不使用异步辅助库,您可以使用一些标志和辅助函数,不是最优雅的,但它可以工作

var docReady = false;
var responseReady = false;
var tryEvaluateResponse = function() { 
    if(docReady && responseReady) {/*processing data from the server*/}
};
$(document).ready(function() {
    docReady = true;
    tryEvaluateResponse();
});
$.ajax(/*some request*/)).done(function() {
    responseReady = true; 
    tryEvaluateResponse()
});
于 2015-04-06T21:38:15.883 回答
0

尝试使用: $( document ).ajaxComplete(function() {}

于 2013-11-29T12:32:33.127 回答
0

不,这行不通,因为$(document).ready()不会返回承诺。但是你可以这样做

var request = $.ajax(/*some request*/);
$(document).ready(function() {
    request.done(function(){
        //processing data from the server
    });
});
于 2015-04-06T21:44:20.330 回答