Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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?_Javascript_Jquery_Ajax_Asynchronous - Fatal编程技术网

Javascript 如何识别已提交请求但等待响应的ajax?

Javascript 如何识别已提交请求但等待响应的ajax?,javascript,jquery,ajax,asynchronous,Javascript,Jquery,Ajax,Asynchronous,我有一个ajax请求,需要1分钟以上才能得到响应。用户输入的数据将在该请求中提交 因此,我必须像这样为客户显示两条成功消息 1) ajax将数据发送到服务器后“数据成功提交”,而没有收到即时响应。如果它立即收到响应,那肯定是个错误。 2) 现在,用户可以在同一页面中等待在服务器中完成漫长的过程后看到第二条成功消息“File generation successful”,也可以导航到其他页面,甚至可以注销。但它不会影响服务器中运行的进程,因为它是在单独线程中运行的异步进程 但我不知道如何识别aja

我有一个ajax请求,需要1分钟以上才能得到响应。用户输入的数据将在该请求中提交

因此,我必须像这样为客户显示两条成功消息

1) ajax将数据发送到服务器后“数据成功提交”,而没有收到即时响应。如果它立即收到响应,那肯定是个错误。 2) 现在,用户可以在同一页面中等待在服务器中完成漫长的过程后看到第二条成功消息“File generation successful”,也可以导航到其他页面,甚至可以注销。但它不会影响服务器中运行的进程,因为它是在单独线程中运行的异步进程

但我不知道如何识别ajax已经将数据发送到服务器,但等待接收响应?我可以简单地通过以下方式显示成功信息:

function sendData(){
    $.ajax({
        url: ...,
        type: ...,
        data: ...,
        success: function(data){
            $("#success-message").html("File genration sucessfull");
        }
    });
    $("#success-message").html("Data successfully submitted");
}

但即使客户端与internet断开连接,也会显示“数据已成功提交”。这就是为什么当ajax处于挂起状态时,我需要在ajax请求后显示此“Data successfully submitted”(数据成功提交)消息以接收响应。

我认为您可以使用当前的解决方案,只要确保编写错误处理程序即可。如果用户与internet断开连接,则错误处理程序几乎会在函数返回后立即触发,因此浏览器很可能甚至不会呈现成功消息

例如:


如果您的ajax是异步的
async:true
你总是有回拨事件。
e、 g


参考更多参考资料

我认为您需要更为相似的@ManishShukla,No。。这与我的问题无关。在发送前使用
作为
success
。在ajax开始工作之前,您可以向用户显示一个弹出窗口。这意味着,现在发送将开始。还可以使用
error
案例来捕获错误。这里不是回答了这个问题吗:Ajax总是异步的,除非您将其指定为
async:falsefunction sendData(){
    $.ajax({
        url: ...,
        type: ...,
        data: ...,
        error: function(data){ // callback triggers almost directly after returning
            // "success-message" not a very good name
            $("#success-message").html("Error occurred");
        }, 
        success: function(data){
            $("#success-message").html("File generation successful");
        }
    });
    $("#success-message").html("Data successfully submitted");
}
success: function (json) { 
                              console.log('success:'+json) 
                             },
                             complete: function (msg,a,b) {
                                console.log('complete :'+msg) 
                             },
                             error : function(msg,a,b){
                                 console.log('error:'+msg);
                             }