程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 在ASP處理程序時顯示進度

在ASP處理程序時顯示進度

編輯:關於ASP編程

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

      它的存在能夠使用戶及時掌握程序的運行進度,確認應用程序正常工作。可是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張img

      dim 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用於存放目前已經畫的img

      shownum=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幫助

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved