我需要做一個ajax請求,然後處理從服務器返回的一些數據。我想先提出這個請求,然後文件就緒。但是,只有在文檔準備就緒後,我才能夠處理數據。我有一個想法,使這樣的事情:dom準備好後調用ajax完成函數
$.when($(document).ready(),
$.ajax(/*some request*/)).done(function(){//processing data from the server});
它將如何工作?或是否有任何其他選項,得到的結果,我想
我需要做一個ajax請求,然後處理從服務器返回的一些數據。我想先提出這個請求,然後文件就緒。但是,只有在文檔準備就緒後,我才能夠處理數據。我有一個想法,使這樣的事情:dom準備好後調用ajax完成函數
$.when($(document).ready(),
$.ajax(/*some request*/)).done(function(){//processing data from the server});
它將如何工作?或是否有任何其他選項,得到的結果,我想
嘗試使用:$(文件).ajaxComplete(函數(){}
不使用異步助手庫, 你可以使用一些標誌和一個幫手函數,而不是最優雅的,但它的工作原理
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()
});
不,這是行不通的,因爲$(document).ready()
不返回的承諾。但是,您可以做
var request = $.ajax(/*some request*/);
$(document).ready(function() {
request.done(function(){
//processing data from the server
});
});