多个异步AJAX调用

时间:2014-07-08 12:29:56

标签: jquery ajax asynchronous

我正在进行AJAX调用以检查存储过程执行的进度。存储过程在另一个表中记录进度百分比。我使用AJAX调用执行存储过程的页面,并使用另一个AJAX调用另一个查询该附加表并返回状态值的页面。

我遇到的问题是,在最长的AJAX请求的响应下,所有响应看起来都是同时出现的。请参见下图:

enter image description here

第二个请求应该在第一个请求之前处理,因为它只需要几毫秒的时间来响应。

上面的结果是通过下面列出的jQuery代码完成的:

    $(document).ready(function(){
        $.post('BS_process.asp',{u:<%=UniqID%>, p:<%=ProfileID%>}).done(function(response){
//          DO STUFF
        }).fail(function(){
//          DO STUFF
        });

        $.post('BS_progress_ajax.asp',{u:<%=UniqID%>}).done(function(response){
            console.log(response);
        });     
    });

现在我不太确定,但我认为这是因为同时请求的服务器限制。我的要求是立即得到每个回复。最后,我将实施一个间隔来检查进度。

请告诉我如何解决这个问题

1 个答案:

答案 0 :(得分:0)

这是因为会话是每个会话的单线程。对同一会话的ASP脚本的请求只能按顺序处理,因此一次只能处理一个请求。要停止此操作,您需要停止在页面上使用会话并将其关闭:http://support.microsoft.com/kb/244465/en-us。如果您需要会话,则可能需要使用数据库。