2013-05-30 50 views
0

我需要做一個ajax請求,然後處理從服務器返回的一些數據。我想先提出這個請求,然後文件就緒。但是,只有在文檔準備就緒後,我才能夠處理數據。我有一個想法,使這樣的事情:dom準備好後調用ajax完成函數

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

它將如何工作?或是否有任何其他選項,得到的結果,我想

回答

0

嘗試使用:$(文件).ajaxComplete(函數(){}

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() 
}); 
0

不,這是行不通的,因爲$(document).ready()不返回的承諾。但是,您可以做

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