我正在进行AJAX调用以检查存储过程执行的进度。存储过程在另一个表中记录进度百分比。我使用AJAX调用执行存储过程的页面,并使用另一个AJAX调用另一个查询该附加表并返回状态值的页面。
我遇到的问题是,在最长的AJAX请求的响应下,所有响应看起来都是同时出现的。请参见下图:
第二个请求应该在第一个请求之前处理,因为它只需要几毫秒的时间来响应。
上面的结果是通过下面列出的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);
});
});
现在我不太确定,但我认为这是因为同时请求的服务器限制。我的要求是立即得到每个回复。最后,我将实施一个间隔来检查进度。
请告诉我如何解决这个问题
答案 0 :(得分:0)
这是因为会话是每个会话的单线程。对同一会话的ASP脚本的请求只能按顺序处理,因此一次只能处理一个请求。要停止此操作,您需要停止在页面上使用会话并将其关闭:http://support.microsoft.com/kb/244465/en-us。如果您需要会话,则可能需要使用数据库。