Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax在dom就绪后完成函数调用_Javascript_Jquery_Ajax_Document Ready_.when - Fatal编程技术网

Javascript ajax在dom就绪后完成函数调用

Javascript ajax在dom就绪后完成函数调用,javascript,jquery,ajax,document-ready,.when,Javascript,Jquery,Ajax,Document Ready,.when,我需要发出一个ajax请求,然后处理从服务器返回的一些数据。我想在文件准备好之前提出这个请求。但只有在文档准备好之后,我才能处理数据。我有一个想法可以做这样的东西: $.when($(document).ready(), $.ajax(/*some request*/)).done(function(){//processing data from the server}); 它将如何工作?或者是否有任何其他选项可以获得我想要的结果尝试使用:$(document).ajaxCom

我需要发出一个ajax请求,然后处理从服务器返回的一些数据。我想在文件准备好之前提出这个请求。但只有在文档准备好之后,我才能处理数据。我有一个想法可以做这样的东西:

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

它将如何工作?或者是否有任何其他选项可以获得我想要的结果

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

而不使用异步帮助程序库, 您可以使用一些标志和助手函数,虽然不是最优雅的,但它可以工作

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