动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   Asp → 阅读文章

 在ASP处理程序时显示进度

作者:无从考证 来源:转载 
阅读 2715 人次 , 2006-2-15 14:12:00 

用过软件的朋友都知道,进度条是一个优秀软件的重要组成部分。 
它的存在能够使用户及时掌握程序的运行进度,确认应用程序正常工作。可是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读取系统时区的错误行为修正
· 下一篇:Rs.open sql,conn,A,B 的A、B各代表什么?
· 提高ASP性能的最佳选择(续一)
· asp程序和php程序转换要注意的问题
· 架构Web Service: 什么是Web服务?
· 微软建议的ASP性能优化28条守则(7)
· ASP 连接执行程序


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077