在ASP處理常式時顯示進度

來源:互聯網
上載者:User

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.