CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

求在查询数据库的时候,在页面上显示进度条?

楼主wzg7711(小蛇)2006-03-04 10:16:04 在 Java / Web 开发 提问

在查询数据库的时候,在页面上显示进度条,等数据查询完毕时,进度条就消失,不知各位能否提供一个参考,多谢了 问题点数:20、回复次数:15Top

1 楼yys79(shart-shoot)回复于 2006-03-04 10:47:41 得分 0

感觉没戏。查询数据库是服务器端的,这时候肯定还没给web页面回应,应该没法显示。或者把大查询分成n个小查询。完成一个查询回送给web页面,也就是刷新n次。Top

2 楼sxy0713(沈骏)回复于 2006-03-04 10:54:31 得分 0

感觉是JSF的内容~Top

3 楼wzg7711(小蛇)回复于 2006-03-04 11:07:36 得分 0

或者在页面显示,“正在查询,请稍等......”像这样动画也可以,等查询完毕就自动关闭Top

4 楼isloop(www.isloop.com)回复于 2006-03-04 12:19:58 得分 0

不太难实现,我做过在生成静态页发布网站的时候做过。不过说起来很麻烦,现在要马上出去,就不多说了,下面的朋友接着吧Top

5 楼wzg7711(小蛇)回复于 2006-03-04 12:51:13 得分 0

刚在网上找了一静态网页的进度条,不知哪们高手可以修改一下可以在JSP网页里使用,主要是无法知道查询数据库时需要多长时间  
   
  <script   type=text/javascript>  
  var   ie5   =   (document.all   &&   document.getElementsByTagName);  
  var   step   =   0;  
  function   setSB(v,   el,   inforEl,   message)   {  
  if   (ie5   ||   document.readyState   ==   "complete")   {  
  filterEl   =   el.children[0];  
  valueEl   =   el.children[1];  
   
  if   (filterEl.style.pixelWidth   >   0)   {  
  var   filterBackup   =   filterEl.style.filter;  
  filterEl.style.filter   =   "";  
  filterEl.style.filter   =   filterBackup;  
  }  
   
  filterEl.style.width   =   v   +   "%";  
  valueEl.innerText   =   v   +   "%";  
  inforEl.innerText   =   message;  
  }  
  }  
  function   setSBByStep(v,   el,   inforEl,   message)   {  
  if   (ie5   ||   document.readyState   ==   "complete")   {  
  step   =   step   +   v;  
  filterEl   =   el.children[0];  
  valueEl   =   el.children[1];  
   
  if   (filterEl.style.pixelWidth   >   0)   {  
  var   filterBackup   =   filterEl.style.filter;  
  filterEl.style.filter   =   "";  
  filterEl.style.filter   =   filterBackup;  
  }  
   
  filterEl.style.width   =   step   +   "%";  
  valueEl.innerText   =   step   +   "%"  
  inforEl.innerText   =   message;  
  }  
  }  
   
  function   fakeProgress(v,   el)   {  
  if   (v   >=   101)  
        alert('aaa');  
  else   {  
  setSB(v,   el,   infor,   "数据正在查询       加载中……");  
  window.setTimeout("fakeProgress("   +   (v   +   1)   +   ",   document.all['"   +   el.id   +   "'])",   20);  
  }  
  }  
   
  //-->  
  </script>  
   
  <body   onLoad="fakeProgress(0,sb)">  
  <DIV   align=center>  
  <DIV   id=sb   style="BORDER-RIGHT:   #ffffff   1px   solid;   BORDER-TOP:   #ffffff   1px   solid;   BACKGROUND:   #DCDCDC;   WIDTH:   400px;   BORDER-BOTTOM:   #cccccc   1px   solid;   HEIGHT:   14px;   TEXT-ALIGN:   left">  
  <DIV   id=sbChild1   style="FILTER:   Alpha(Opacity=0,   FinishOpacity=80,   Style=1,   StartX=0,   StartY=0,   FinishX=100,   FinishY=0);   OVERFLOW:   hidden;   WIDTH:   100%;   POSITION:   absolute;   HEIGHT:   12px">  
  <DIV   style="BACKGROUND:   #000000;   WIDTH:   100%"   hidden   overflow:   height:12px;></DIV></DIV>  
  <DIV   style="FONT-SIZE:   10px;   WIDTH:   400px;   COLOR:   white;   FONT-FAMILY:   arial;   POSITION:   absolute;   HEIGHT:   14px;   TEXT-ALIGN:   center"></DIV></DIV>  
  <P></P>  
  <DIV   id=infor   style="FONT-SIZE:   11px;   WIDTH:   100%;   COLOR:   #999999;   FONT-FAMILY:   arial;   POSITION:   relative;   HEIGHT:   14px;   TEXT-ALIGN:   center"></DIV></DIV>Top

6 楼zx2002027(http://www.netyi.net/in.asp?id=zx2002027)回复于 2006-03-06 22:20:37 得分 0

关注Top

7 楼strawren(大漠)回复于 2006-03-09 10:08:41 得分 0

这个基本上不现实。  
  因为服务器端的执行是未知的,而且http是一次请求与响应。  
   
  用这个方法试试:  
  给用户一个正在执行的画面,执行完后再跳转到相应的页面Top

8 楼fjm_520(蓝)回复于 2006-03-09 10:51:53 得分 0

学习Top

9 楼hant(阿水)回复于 2006-03-09 11:12:50 得分 0

我们现在实现的都是出现一个图层,上面有个GIF图片,提示用户正在进行数据库操作,请等待,不好提示还剩多少时间,难!Top

10 楼VisaulAll(欧阳)回复于 2006-03-09 12:58:11 得分 0

可以试试用xmlHttpTop

11 楼haoren_1012(好人 )回复于 2006-03-10 09:08:06 得分 0

提示剩余时间很难,如果只要出现提示“正在查询”,结束时自动关闭,倒可以实现!Top

12 楼dlxu(脱离纯粹Coding阶段)回复于 2006-03-10 09:24:33 得分 0

最多采用Ajax,不过数据库查询的话好像数据库不会返回查询的百分比吧Top

13 楼loveme820(例外)回复于 2006-03-10 10:26:29 得分 0

如果你能建立起这样的前提,还是有希望的:  
  1.你知道查数据库需要多长时间(这个实现起来,难度会超出想象)  
  2.现在用了多少时间。  
  3.其他影响时间的因素,如网络状况,服务器配置等。Top

14 楼minisun2000(红色枫叶)回复于 2006-03-10 14:41:31 得分 0

应该比较难,如楼上所说的,前2条基本都没戏Top

15 楼soft1999(豆子1999)回复于 2006-03-10 15:04:08 得分 0

其实了解缓存技术后你就知道怎么实现了..我原来用asp做过.不难.不知道jsp是不是一样.Top

相关问题

  • 查询后台数据库和页面刷新的问题
  • prgressbar显示问题(多线程显示数据库查询进度)
  • 数据库查询!
  • 数据库查询
  • 数据库查询~~~~
  • 数据库查询~~~~
  • 数据库查询~~~~
  • 数据库查询
  • 数据库查询
  • 查询数据库

关键词

  • 查询
  • 数据库
  • 页面
  • 执行
  • 进度条
  • 显示
  • 提示
  • 实现
  • 时候
  • 时间

得分解答快速导航

  • 帖主:wzg7711

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo