[問題] 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