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

wzg7711 2006-03-04 10:16:04
在查询数据库的时候,在页面上显示进度条,等数据查询完毕时,进度条就消失,不知各位能否提供一个参考,多谢了
...全文
476 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
loveme820 2006-03-10
如果你能建立起这样的前提,还是有希望的:
1.你知道查数据库需要多长时间(这个实现起来,难度会超出想象)
2.现在用了多少时间。
3.其他影响时间的因素,如网络状况,服务器配置等。
回复
dlxu 2006-03-10
最多采用Ajax,不过数据库查询的话好像数据库不会返回查询的百分比吧
回复
haoren 2006-03-10
提示剩余时间很难,如果只要出现提示“正在查询”,结束时自动关闭,倒可以实现!
回复
soft1999 2006-03-10
其实了解缓存技术后你就知道怎么实现了..我原来用asp做过.不难.不知道jsp是不是一样.
回复
minisun2000 2006-03-10
应该比较难,如楼上所说的,前2条基本都没戏
回复
VisaulAll 2006-03-09
可以试试用xmlHttp
回复
hant 2006-03-09
我们现在实现的都是出现一个图层,上面有个GIF图片,提示用户正在进行数据库操作,请等待,不好提示还剩多少时间,难!
回复
fjm_520 2006-03-09
学习
回复
strawren 2006-03-09
这个基本上不现实。
因为服务器端的执行是未知的,而且http是一次请求与响应。

用这个方法试试:
给用户一个正在执行的画面,执行完后再跳转到相应的页面
回复
zx2002027 2006-03-06
关注
回复
wzg7711 2006-03-04
刚在网上找了一静态网页的进度条,不知哪们高手可以修改一下可以在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>
回复
isloop 2006-03-04
不太难实现,我做过在生成静态页发布网站的时候做过。不过说起来很麻烦,现在要马上出去,就不多说了,下面的朋友接着吧
回复
wzg7711 2006-03-04
或者在页面显示,“正在查询,请稍等......”像这样动画也可以,等查询完毕就自动关闭
回复
sxy0713 2006-03-04
感觉是JSF的内容~
回复
loveunittesting 2006-03-04
感觉没戏。查询数据库是服务器端的,这时候肯定还没给web页面回应,应该没法显示。或者把大查询分成n个小查询。完成一个查询回送给web页面,也就是刷新n次。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-03-04 10:16
社区公告
暂无公告