在dom准备好之后调用ajax完成函数

时间:2013-05-30 09:55:03

标签: javascript jquery ajax document-ready .when

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

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

它将如何运作?还是有其他选择来获得我想要的结果

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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()
});

答案 2 :(得分:0)

不,这不起作用,因为$(document).ready()没有返回承诺。你可以这样做

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