我需要发出ajax请求,然后处理从服务器返回的一些数据。我想早点提出这个请求,然后文档就绪了。但是,只有在文档准备好后,我才能处理数据。我有一个想法,就是这样:
$.when($(document).ready(),
$.ajax(/*some request*/)).done(function(){//processing data from the server});
它将如何运作?还是有其他选择来获得我想要的结果
答案 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
});
});