過軟體的朋友都知道,進度條是乙個優秀軟體的重要組成部分。
它的存在能夠使使用者及時掌握程式的執行進度,確認應用程式正常工作。可是asp
中似乎沒有上述標準控制項,控制起來也比較麻煩。
那么如何實現進度條呢?
以下是本人的一些觀點(
僅供參考
)我們通常在用asp
處理程式
(指的是寫檔案或運算元據庫
)的時候,會專門用乙個頁面
(*.asp)
去處理或控制這些程式,當處理完畢的時候再跳轉到顯示頁面。這時我們就可以通過這些處理頁面顯示進度條。其方法是根據程式處理的進度依次畫一百張同樣的圖形
(如有顏色的矩形
),從而形成進度條。其效果與用其它程式設計工具所實現的基本相似
以下是一些source
,希望能夠給各位有個啟發。
response.buffer=true
dim lostnum
dim shownum
delayshow(dstep,dmax)過程是用於顯示多少
img(
畫多少進度
)其中dmax
為表示整個程式需要處理多少
(dmax)
步才能完成整個處理程式
.其中dstep
表示當前處理的步驟佔整個處理過程中的分量,用數量表示。
變數lostnum
的存在是由於
dmax過大(
比如10000)
,而dstep過小(
比如1)
造成的。如果呼叫
delayshow(1,10000)
勢必不可能畫一次
img,
事實上delayshow(100,10000)才畫一次,表示完成
1%,因為
100佔
10000
的1%.
sub delayshow(dstep,dmax)
dim total //顯示畫面
100張
imgdim dtemp //過渡變數
total=100
dtemp=dstep
dstep=dstep+lostnum
if (dstep*total)/dmax<1 then
//判斷當要處理的東西連
1%都沒有時,不畫
img同時用變數
lostnum
存放未畫的處理總數,便於下次呼叫本過程時在處理。
lostnum=lostnum+dtemp
else
for ccc=1 to fix((dstep*total)/dmax) //取整數
response.write "
next
response.flush //將快取裡的東西()
顯示出來
//變數
shownum
用於存放目前已經畫的
imgshownum=shownum+fix((dstep*total)/dmax)
lostnum=0
end if
end sub
//由於演算法的問題,主要是取餘造成不能完全畫
100次,這時就需要
過程showlost()
將餘下未畫的
img,
通通顯示處理,實現進度條的等長
sub showlost()
for ccc=1 to (100-shownum)
response.write (")
next
response.write "
"response.flush
end sub
最後請注意
這裡需要用到快取技術
response.buffer=true;
response.flush;
response.end
這些請參考msdn幫助
在控制台顯示程式進度
當程式在進行大量的運算或io操作時,常常需要耗很長時間,為了不讓使用者有乙個乏味的等待或是錯誤的認為系統已經宕機,有必要給程式新增進度提示功能。在視窗介面中要顯示進度條和顯示完成百分比是非常容易的,但如何在控制台下去完成這個任務了?一行一行的輸出當前完成百分比肯定是不夠美觀的,最好能 原地踏步 一樣...
前端動態獲取後台處理進度顯示在進度條上
實現思路 我主要是借鑑了這篇部落格的思路 我來簡述一下他的思路,他前端用到了ajax非同步請求,乙個用於獲取冗長的資料,就比如我後台要跑一千次統計,是需要很長時間的,另乙個是乙個週期ajax,每隔一段時間就去後台訪問拿資料,後台巧妙的地方是開了乙個全域性變數,用於存放程式執行的狀態,偽 如下 全域性...
在ProgressBar顯示文字進度
重寫控制項 public partial class progressbarex system.windows.forms.progressbar protected override void onhandlecreated system.eventargs e protected overrid...