在查询数据库的时候,在页面上显示进度条,等数据查询完毕时,进度条就消失,不知各位能否提供一个参考,多谢了

解决方案 »

  1.   

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

  2.   

    刚在网上找了一静态网页的进度条,不知哪们高手可以修改一下可以在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>
      

  3.   

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

  4.   

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

  5.   

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

  6.   

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