时 间 记 忆
<<  < 2011 - 12 >  >>
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

最 新 评 论

最 近 更 新

最 新 留 言

搜 索

用 户 登 录

博 客 相 册

我 的 圈 子

我 的 好 友

友 情 连 接



 
 
在ASP处理程序时进度的显示 
[ 2007-12-23 16:10:00 | By: 青鸟 ]
 

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

它的存在能够使用户及时掌握程序的运行进度,确认应用程序正常工作。可是ASP中似乎没有上述标准控件,控制起来也比较麻烦。

那幺如何实现进度条呢?以下是本人的一些观点(仅供参考)

我们通常在用ASP处理程序(指的是写文件或操作数据库)的时候,会专门用一个页面(*.asp)去处理或控制这些程序,当处理完毕的时候再跳转到显示页面。这时我们就可以通过这些处理页面显示进度条。其方法是根据程序处理的进度依次画一百张同样的图形(如有颜色的矩形),从而形成进度条。其效果与用其它编程工具所实现的基本相似以下是一些Source,希望能够给各位有个启发。

response.buffer=true dim lostnum dim shownum delayshowdstepdmax)过程是用于显示多少img(画多少进度)

其中dmax为表示整个程序需要处理多少(dmax)步才能完成整个处理程序。

其中dstep表示当前处理的步骤占整个处理过程中的分量,用数量表示。

变量lostnum的存在是由于dmax过大(比如10000),而dstep过小(比如1)造成的。如果调用delayshow110000)势必不可能画一次img,事实上delayshow10010000)才画一次,表示完成1%,因为100100001%. sub delayshowdstepdmax

dim total //显示画面100img 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"<img src=""……/images/delay1.jpg"">"next Response.Write "

" Response.Flush end sub最后请注意这里需要用到缓存技术response.buffer=trueresponse.flushresponse.end

 

 
 
  • 标签:进度条 
  • 发表评论:
     
     
     
    天涯博客
    天涯博客欢迎您!