在ASP處理程序時(shí)顯示進(jìn)度
更新時(shí)間:2007年03月12日 00:00:00 作者:
用過軟件的朋友都知道,進(jìn)度條是一個(gè)優(yōu)秀軟件的重要組成部分。
它的存在能夠使用戶及時(shí)掌握程序的運(yùn)行進(jìn)度,確認(rèn)應(yīng)用程序正常工作。可是ASP中似乎沒有上述標(biāo)準(zhǔn)控件,控制起來也比較麻煩。
那幺如何實(shí)現(xiàn)進(jìn)度條呢?
以下是本人的一些觀點(diǎn)(僅供參考)
我們通常在用ASP處理程序(指的是寫文件或操作數(shù)據(jù)庫(kù))的時(shí)候,會(huì)專門用一個(gè)頁(yè)面(*.asp)去處理或控制這些程序,當(dāng)處理完畢的時(shí)候再跳轉(zhuǎn)到顯示頁(yè)面。這時(shí)我們就可以通過這些處理頁(yè)面顯示進(jìn)度條。其方法是根據(jù)程序處理的進(jìn)度依次畫一百?gòu)埻瑯拥膱D形(如有顏色的矩形),從而形成進(jìn)度條。其效果與用其它編程工具所實(shí)現(xiàn)的基本相似
以下是一些Source,希望能夠給各位有個(gè)啟發(fā)。
response.buffer=true
dim lostnum
dim shownum
delayshow(dstep,dmax)過程是用于顯示多少img(畫多少進(jìn)度)
其中dmax為表示整個(gè)程序需要處理多少(dmax)步才能完成整個(gè)處理程序.
其中dstep表示當(dāng)前處理的步驟占整個(gè)處理過程中的分量,用數(shù)量表示。
變量lostnum的存在是由于dmax過大(比如10000),而dstep過小(比如1)造成的。如果調(diào)用delayshow(1,10000)勢(shì)必不可能畫一次img,事實(shí)上
delayshow(100,10000)才畫一次,表示完成1%,因?yàn)?00占10000的1%.
sub delayshow(dstep,dmax)
dim total //顯示畫面100張img
dim dtemp //過渡變量
total=100
dtemp=dstep
dstep=dstep+lostnum
if (dstep*total)/dmax<1 then
//判斷當(dāng)要處理的東西連1%都沒有時(shí),不畫img同時(shí)用變量lostnum存放未畫的處理總數(shù),便于下次調(diào)用本過程時(shí)在處理。
lostnum=lostnum+dtemp
else
for ccc=1 to fix((dstep*total)/dmax) //取整數(shù)
Response.Write "<img src=""../images/delay1.jpg"">"
next
Response.Flush //將緩存里的東西(圖片)顯示出來
//變量shownum用于存放目前已經(jīng)畫的img
shownum=shownum+fix((dstep*total)/dmax)
lostnum=0
end if
end sub
//由于算法的問題,主要是取余造成不能完全畫100次,這時(shí)就需要
過程showlost()將余下未畫的img,通通顯示處理,實(shí)現(xiàn)進(jìn)度條的等長(zhǎng)
sub showlost()
for ccc=1 to (100-shownum)
Response.Write ("<img src=""../images/delay1.jpg"">")
next
Response.Write "<BR>"
Response.Flush
end sub
最后請(qǐng)注意
這里需要用到緩存技術(shù)
response.buffer=true;
response.flush;
response.end
這些請(qǐng)參考MSDN幫助
它的存在能夠使用戶及時(shí)掌握程序的運(yùn)行進(jìn)度,確認(rèn)應(yīng)用程序正常工作。可是ASP中似乎沒有上述標(biāo)準(zhǔn)控件,控制起來也比較麻煩。
那幺如何實(shí)現(xiàn)進(jìn)度條呢?
以下是本人的一些觀點(diǎn)(僅供參考)
我們通常在用ASP處理程序(指的是寫文件或操作數(shù)據(jù)庫(kù))的時(shí)候,會(huì)專門用一個(gè)頁(yè)面(*.asp)去處理或控制這些程序,當(dāng)處理完畢的時(shí)候再跳轉(zhuǎn)到顯示頁(yè)面。這時(shí)我們就可以通過這些處理頁(yè)面顯示進(jìn)度條。其方法是根據(jù)程序處理的進(jìn)度依次畫一百?gòu)埻瑯拥膱D形(如有顏色的矩形),從而形成進(jìn)度條。其效果與用其它編程工具所實(shí)現(xiàn)的基本相似
以下是一些Source,希望能夠給各位有個(gè)啟發(fā)。
response.buffer=true
dim lostnum
dim shownum
delayshow(dstep,dmax)過程是用于顯示多少img(畫多少進(jìn)度)
其中dmax為表示整個(gè)程序需要處理多少(dmax)步才能完成整個(gè)處理程序.
其中dstep表示當(dāng)前處理的步驟占整個(gè)處理過程中的分量,用數(shù)量表示。
變量lostnum的存在是由于dmax過大(比如10000),而dstep過小(比如1)造成的。如果調(diào)用delayshow(1,10000)勢(shì)必不可能畫一次img,事實(shí)上
delayshow(100,10000)才畫一次,表示完成1%,因?yàn)?00占10000的1%.
sub delayshow(dstep,dmax)
dim total //顯示畫面100張img
dim dtemp //過渡變量
total=100
dtemp=dstep
dstep=dstep+lostnum
if (dstep*total)/dmax<1 then
//判斷當(dāng)要處理的東西連1%都沒有時(shí),不畫img同時(shí)用變量lostnum存放未畫的處理總數(shù),便于下次調(diào)用本過程時(shí)在處理。
lostnum=lostnum+dtemp
else
for ccc=1 to fix((dstep*total)/dmax) //取整數(shù)
Response.Write "<img src=""../images/delay1.jpg"">"
next
Response.Flush //將緩存里的東西(圖片)顯示出來
//變量shownum用于存放目前已經(jīng)畫的img
shownum=shownum+fix((dstep*total)/dmax)
lostnum=0
end if
end sub
//由于算法的問題,主要是取余造成不能完全畫100次,這時(shí)就需要
過程showlost()將余下未畫的img,通通顯示處理,實(shí)現(xiàn)進(jìn)度條的等長(zhǎng)
sub showlost()
for ccc=1 to (100-shownum)
Response.Write ("<img src=""../images/delay1.jpg"">")
next
Response.Write "<BR>"
Response.Flush
end sub
最后請(qǐng)注意
這里需要用到緩存技術(shù)
response.buffer=true;
response.flush;
response.end
這些請(qǐng)參考MSDN幫助
相關(guān)文章
asp中command的在單條記錄時(shí),有些字段顯示為空的問題
網(wǎng)上找到一些資料,關(guān)于游標(biāo)這個(gè)問題,還是無法放進(jìn)去(如果方法找到的話,還可以改) 之前的sql這么寫,但是沒有效果有些非順序的值會(huì)丟失2008-07-07
asp中Scripting.Dictionary字典對(duì)象使用示例
這篇文章主要介紹了asp中Scripting.Dictionary字典對(duì)象使用示例,本文包含創(chuàng)建、賦值、遍歷、判斷KEY等操作,需要的朋友可以參考下2014-08-08
asp下通過HTTP_USER_AGENT判斷用戶是從手機(jī)上訪問,還是電腦IE上訪問
最近wap網(wǎng)站比較流行,我們需要判斷下客戶使用手機(jī)訪問的還是電腦ie訪問的, 好給出不同尺寸的頁(yè)面,更符合用戶瀏覽習(xí)慣,下面是核心判斷代碼,需要的朋友可以參考下。2011-01-01
ASP網(wǎng)站出現(xiàn) msxml3.dll 錯(cuò)誤 80072ee7 錯(cuò)誤的解決方法
這兩天接到通知,說公司的一個(gè)網(wǎng)站訪問不了,經(jīng)訪問發(fā)現(xiàn)頁(yè)面提示如下錯(cuò)誤2011-08-08
asp中將有雙引號(hào)標(biāo)題入庫(kù)的方法
asp中將有雙引號(hào)標(biāo)題入庫(kù)的方法,需要的朋友可以參考下2012-10-10

