用過軟件的朋友都知道
進度條是一個優秀軟件的重要組成部分
它的存在能夠使用戶及時掌握程序的運行進度
確認應用程序正常工作
可是ASP中似乎沒有上述標准控件
控制起來也比較麻煩
那幺如何實現進度條呢?
以下是本人的一些觀點(僅供參考)
我們通常在用ASP處理程序(指的是寫文件或操作數據庫)的時候
會專門用一個頁面(*
asp)去處理或控制這些程序
當處理完畢的時候再跳轉到顯示頁面
這時我們就可以通過這些處理頁面顯示進度條
其方法是根據程序處理的進度依次畫一百張同樣的圖形(如有顏色的矩形)
從而形成進度條
其效果與用其它編程工具所實現的基本相似以下是一些Source
希望能夠給各位有個啟發
response
buffer=true dim lostnum dim shownum delayshow(dstep
dmax)過程是用於顯示多少img(畫多少進度)
其中dmax為表示整個程序需要處理多少(dmax)步才能完成整個處理程序
其中dstep表示當前處理的步驟占整個處理過程中的分量
用數量表示
變量lostnum的存在是由於dmax過大(比如
)
而dstep過小(比如
)造成的
如果調用delayshow(
)勢必不可能畫一次img
事實上delayshow(
)才畫一次
表示完成
%
因為
占
的
%
sub delayshow(dstep
dmax)
dim total //顯示畫面
張img dim dtemp //過渡變量total=
dtemp=dstep dstep=dstep+lostnum if (dstep*total)/dmax<
then //判斷當要處理的東西連
%都沒有時
不畫img同時用變量lostnum存放未畫的處理總數
便於下次調用本過程時在處理
lostnum=lostnum+dtemp else for ccc=
to fix((dstep*total)/dmax) //取整數Response
Write
<img src=
……/images/delay
jpg
>
next Response
Flush //將緩存裡的東西(圖片)顯示出來//變量shownum用於存放目前已經畫的img shownum=shownum+fix((dstep*total)/dmax)
lostnum=
end if end sub //由於算法的問題
主要是取余造成不能完全畫
次
這時就需要過程showlost()將余下未畫的img
通通顯示處理
實現進度條的等長sub showlost()
for ccc=
to (
shownum)
Response
Write (
<img src=
……/images/delay
jpg
>
)
next Response
Write
<BR>
Response
Flush end sub最後請注意這裡需要用到緩存技術response
buffer=true
response
flush
response
end這些請參考MSDN幫助
From:http://tw.wingwit.com/Article/program/net/201311/12943.html