[问题] ajax制作查询百分比进度问题

楼主: Tsukasayeo (观月司)   2015-03-31 22:17:39
目前使用ASP.NET想要做到可以后端查询进度的前端显示
code大致如下
function getprogress() {
$.ajax({
url: 'abc.aspx',
data: {'type': 'progress'},
success: function (data) {
$('#p').text(data + '%');
}
});
}
function getdata() {
var timer = setInterval(getprogress, 500);
$.ajax({
url: 'abc.aspx',
data: {'type': 'data'},
success: function (data) {
$('#data').text(data);
},
complete: function() {
clearInterval(timer);
}
});
}
本来的构想是
getdata会去呼叫好几个webservice执行查询,再把所有资料组合回传
进度计算是用“目前呼叫到的webservice/所有需呼叫的webservice”
再把进度写到session里,用getprogress读取session显示在前端
可是会变成第一个request送出去是getdata
之后再陆续送getprogress的request
而后面的request全部都卡在等第一个request完成后,后端才继续受理回传进度
结果是等到资料都送回来了,后面的进度才传回100%回来
有办法让后面的request不等待第一个要求完成,直接取得目前的处理进度吗?
作者: qwer820404 (GB2)   2015-04-01 22:55:00
可以 只是你的作法 本就会被限制在后端咬住http://ppt.cc/Aya-
楼主: Tsukasayeo (观月司)   2015-04-01 23:04:00
后来是参考这篇http://goo.gl/D8UF6S,把abc.aspx的Enablesessionstate改为Readonly达成,因为.net的session write lock所产生的问题

Links booklink

Contact Us: admin [ a t ] ucptt.com