我需要发出一个 ajax 请求,然后处理从服务器返回的一些数据。我想早点提出这个请求,然后文件就准备好了。但是我只有在文件准备好后才能处理数据。我有一个想法来做这样的事情:
$.when($(document).ready(),
$.ajax(/*some request*/)).done(function(){//processing data from the server});
它将如何运作?还是有任何其他选择可以得到我想要的结果
我需要发出一个 ajax 请求,然后处理从服务器返回的一些数据。我想早点提出这个请求,然后文件就准备好了。但是我只有在文件准备好后才能处理数据。我有一个想法来做这样的事情:
$.when($(document).ready(),
$.ajax(/*some request*/)).done(function(){//processing data from the server});
它将如何运作?还是有任何其他选择可以得到我想要的结果
不使用异步辅助库,您可以使用一些标志和辅助函数,不是最优雅的,但它可以工作
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 ).ajaxComplete(function() {}
不,这行不通,因为$(document).ready()
不会返回承诺。但是你可以这样做
var request = $.ajax(/*some request*/);
$(document).ready(function() {
request.done(function(){
//processing data from the server
});
});