jquery同时发送两个异步ajax请求,但数据却是按同步顺序返回
var isComplete = false;
$(
function () {
$("#dialog-message").dialog({
resizable: false,
modal: true,
autoOpen: true
});
$("#dialog-message").html("
正在加载...
");setTimeout(function () {
$.ajax({
type: "POST",
url: "ajax/querylist.ashx",
datatype: "json",
success: function (msg) {
$("#dialog-message").html("
加载完成!
");isComplete = true;
setTimeout(function () {
$("#dialog-message").dialog("close");
}, 500);
}
});
}, 0);
}
);
function querystatus() {
$.ajax({
type: "POST",
url: "ajax/QueryStatus.ashx",
datatype: "text",
success: function (msg) {
$("#dialog-message").html("
" + msg + "
");}
});
if (!isComplete) {
setTimeout(querystatus, 500);
}
}
setTimeout(querystatus, 100);
这段JS里有两个AJAX请求,一个是获取处理数据的列表,需要耗费几秒的时间,另一个AJAX去查询当前处理到哪一步了。
现在的问题是:虽然是异步把请求发出去了,但返回结果顺序却不对;现在要第一个AJAX把结果返回了,再返回第二个AJAX的结果;(第一个大概执行5秒,第二个就是一个输出状态的操作,执行很快)
我现在就想实现,在第一个AJAX请求的过程中,第二个AJAX可以不断的返回当前状态
------解决方案--------------------
用到session了吧,会导致其他请求被挂起
session会挂起其他的请求,要改成cookie验证或者其他非session类的验证
参考:asp.net/asp网站浏览器打开一个长时间运行的页面同时打开其他页面为什么被挂起