软件教程

处理ASP程序时显示进度

来源: 本站    类别: 软件教程    日期: 2011/4/2

 

  用过软件的朋友都知道,进度条是一个优秀软件的重要组成部分。

  它的存在能够使用户及时掌握程序的运行进度,确认应用程序正常工作。可是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 file://显示画面100张img
  dim dtemp file://过渡变量
  total=100
  dtemp=dstep
  dstep=dstep lostnum
  if (dstep*total)/dmax《1 then
  file://判断当要处理的东西连1%都没有时,不画img同时用变量lostnum存放未画的处理总数,便于下次调用本过程时在处理。
  lostnum=lostnum dtemp
  else
  for ccc=1 to fix((dstep*total)/dmax) file://取整数
  Response.Write ""
  next
  Response.Flush file://将缓存里的东西(图片)显示出来
  file://变量shownum用于存放目前已经画的img
  shownum=shownum fix((dstep*total)/dmax)
  lostnum=0
  end if
  end sub
  file://由于算法的问题,主要是取余造成不能完全画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帮助


相关文章


Copyright © 2004 - 2024 CNHWW Inc. All Rights Reserved
石家庄市征红网络科技有限公司版权所有 邮政编码:050051
服务电话:0311-85315152 13931185013 在线客服QQ:81447932 / 81447933 邮箱: cnhww@163.com