在ASP處理程式時顯示進度

2021-05-25 19:21:13 字數 1927 閱讀 6599

過軟體的朋友都知道,進度條是乙個優秀軟體的重要組成部分。

它的存在能夠使使用者及時掌握程式的執行進度,確認應用程式正常工作。可是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...