在ASP处理程序时显示进度 |
|
作者:佚名 文章来源:网络文摘 更新时间:2006-5-6 13:24:29 |
【声明:转载此信息在于传递更多信息,其内容表达的观点并不代表本站立场,由这些信息所产生的一切后果本站不负任何责任。如果您对本信息有什么意见,欢迎和本站联系,谢谢!】http://CiDu.Net
用过软件的朋友都知道,进度条是一个优秀软件的重要组成部分。 它的存在能够使用户及时掌握程序的运行进度,确认应用程序正常工作。可是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帮助
声明:以上信息资料大都是网上搜集而来,版权归作者,如有版权问题请留言告知我将马上改正。 文中所提到的各种观点只是原文观点,各种说法未经一一确认。并不代表本站认可此观点!!
|
资讯录入:admin 责任编辑:admin |
|
上一篇资讯: ASP进度条
下一篇资讯: 如何准确定时运行ASP文件 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |