作者Tsukasayeo (观月司)
看板Ajax
标题[问题] ajax制作查询百分比进度问题
时间Tue Mar 31 22:17:39 2015
目前使用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不等待第一个要求完成,直接取得目前的处理进度吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.83.124.82
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1427811462.A.7B9.html
1F:推 qwer820404: 可以 只是你的作法 本就会被限制在後端咬住 04/01 22:55
4F:→ Tsukasayeo: Enablesessionstate改为Readonly达成,因为.net的 04/01 23:05
5F:→ Tsukasayeo: session write lock所产生的问题 04/01 23:05