快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

在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 "<img src=""../images/delay1.jpg"">"
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 "<BR>"
Response.Flush
end sub

最后请注重
这里需要用到缓存技术
response.buffer=true;
response.flush;
response.end
这些请参考MSDN帮助
返回类别: 教程
上一教程: ASP中使用SQL语句操作数据库
下一教程: 用XML数据岛解决用户界面问题 - 3

您可以阅读与"在ASP处理程序时显示进度"相关的教程:
· 明晰程序非常的来源 ASP错误处理小结
· 显示页面show.asp--基于web的QQ程序1 
· 加速ASP程序的显示速度
· ASP程序实现在HTML中显示文章被阅读的次数
· 用ASP程序显示SQL数据库所有表的名称(带删除功能)
    微笑服务 优质保证 索取样品