看板 Ajax 關於我們 聯絡資訊
目前使用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
qwer820404: 可以 只是你的作法 本就會被限制在後端咬住 04/01 22:55
qwer820404: http://ppt.cc/Aya- 04/01 22:57
Tsukasayeo: 後來是參考這篇http://goo.gl/D8UF6S,把abc.aspx的 04/01 23:04
Tsukasayeo: Enablesessionstate改為Readonly達成,因為.net的 04/01 23:05
Tsukasayeo: session write lock所產生的問題 04/01 23:05