[問題] ajax製作查詢百分比進度問題

看板Ajax作者 (觀月司)時間10年前 (2015/03/31 22:17), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/1
目前使用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://www.ptt.cc/bbs/Ajax/M.1427811462.A.7B9.html

04/01 22:55, , 1F
可以 只是你的作法 本就會被限制在後端咬住
04/01 22:55, 1F

04/01 22:57, , 2F
04/01 22:57, 2F

04/01 23:04, , 3F
後來是參考這篇http://goo.gl/D8UF6S,把abc.aspx的
04/01 23:04, 3F

04/01 23:05, , 4F
Enablesessionstate改為Readonly達成,因為.net的
04/01 23:05, 4F

04/01 23:05, , 5F
session write lock所產生的問題
04/01 23:05, 5F
文章代碼(AID): #1L6go6Uv (Ajax)
文章代碼(AID): #1L6go6Uv (Ajax)