明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

在ASP處理程序時,進(jìn)度顯示

[摘要]用過軟件的朋友都知道,進(jìn)度條是一個優(yōu)秀軟件的重要組成部分。它的存在能夠使用戶及時掌握程序的運行進(jìn)度,確認(rèn)應(yīng)用程序正常工作?墒茿SP中似乎沒有上述標(biāo)準(zhǔn)控件,控制起來也比較麻煩。那幺如何實現(xiàn)進(jìn)度條呢?以下是本人的一些觀點(僅供參考) 我們通常在用ASP處理程序(指的是寫文件或操作數(shù)據(jù)庫)的時候,會...

     用過軟件的朋友都知道,進(jìn)度條是一個優(yōu)秀軟件的重要組成部分。
它的存在能夠使用戶及時掌握程序的運行進(jìn)度,確認(rèn)應(yīng)用程序正常工作?墒茿SP中似乎沒有上述標(biāo)準(zhǔn)控件,控制起來也比較麻煩。
那幺如何實現(xiàn)進(jìn)度條呢?
以下是本人的一些觀點(僅供參考)
  我們通常在用ASP處理程序(指的是寫文件或操作數(shù)據(jù)庫)的時候,會專門用一個頁面(*.asp)去處理或控制這些程序,當(dāng)處理完畢的時候再跳轉(zhuǎn)到顯示頁面。這時我們就可以通過這些處理頁面顯示進(jìn)度條。其方法是根據(jù)程序處理的進(jìn)度依次畫一百張同樣的圖形(如有顏色的矩形),從而形成進(jìn)度條。其效果與用其它編程工具所實現(xiàn)的基本相似
以下是一些Source,希望能夠給各位有個啟發(fā)。
response.buffer=true
dim lostnum
dim shownum
delayshow(dstep,dmax)過程是用于顯示多少img(畫多少進(jìn)度)
其中dmax為表示整個程序需要處理多少(dmax)步才能完成整個處理程序.
其中dstep表示當(dāng)前處理的步驟占整個處理過程中的分量,用數(shù)量表示。
變量lostnum的存在是由于dmax過大(比如10000),而dstep過小(比如1)造成的。如果調(diào)用delayshow(1,10000)勢必不可能畫一次img,事實上
delayshow(100,10000)才畫一次,表示完成1%,因為100占10000的1%.
sub delayshow(dstep,dmax)
  dim total  file://顯示畫面100張img
  dim dtemp  file://過渡變量
  total=100
  dtemp=dstep
   dstep=dstep+lostnum
  if (dstep*total)/dmax《1 then 
file://判斷當(dāng)要處理的東西連1%都沒有時,不畫img同時用變量lostnum存放未畫的處理總數(shù),便于下次調(diào)用本過程時在處理。
    lostnum=lostnum+dtemp
  else
    for ccc=1 to  fix((dstep*total)/dmax)  file://取整數(shù)
      Response.Write ""     
    next
    Response.Flush file://將緩存里的東西(圖片)顯示出來
file://變量shownum用于存放目前已經(jīng)畫的img
    shownum=shownum+fix((dstep*total)/dmax) 
    lostnum=0
  end if
end sub
file://由于算法的問題,主要是取余造成不能完全畫100次,這時就需要
過程showlost()將余下未畫的img,通通顯示處理,實現(xiàn)進(jìn)度條的等長
sub showlost()
  for ccc=1 to (100-shownum)
   Response.Write ("")     
  next
  Response.Write "

  Response.Flush
end sub 最后請注意
這里需要用到緩存技術(shù)
response.buffer=true;
response.flush;
response.end
這些請參考MSDN幫助(出處:Viphot)