2012-06-20 64 views
1

我有一個任務可以提取文件中的zip文件:Update.asp 如何在index.asp任務啓動後更新jquery進度條。Ajax:獲取請求狀態並更新jProgressBar

我發現了一個在index.asp上使用2個ajax調用的解決方案。一個開始的任務與update.asp,另一個是得到session("progress_status")此會話更改時每提取文件完成對update.asp

<% 
session("progress_status") = 0 
'file 1 extracted 
session("progress_status") = 50 
'file 2 extracted 
session("progress_status") = 100 
%> 

問題是,當第一個Ajax調用開始,第二AJAX調用懸而未決直到第一次調用結束。

my ajax calls

回答

0

您所遇到的問題是,ASP處理器將只處理一個腳本,在一個特定的時間會話。因此,您嘗試獲取進度的asp腳本調用將排在執行提取的asp​​腳本之後。

這是我推薦你這樣做的:假的。您對提取頁面發出ajax請求。雖然它提取你有一個純粹的JavaScript驅動的進度條,使用計時器。給它一些緩解,以便看起來一開始進展得非常快,但隨後呈指數級放緩。當ajax請求完成時,您可以在刪除之前簡單地顯示進度條已完成。

如果您可以獲取zip的原始大小,則可以使用該數字來改善僞造的進度條與現實之間的匹配。如果這樣的提取經常發生,可以通過記錄一些統計數據來提取各種壓縮文件,以獲得一些味道時間與字節的比率,這可以進一步考慮這一點。

最終你的用戶需要溫暖的模糊感覺,發生了什麼事情,以及上述的成果。