日期:2014-05-18  浏览次数:21006 次

jsp+servlet实现查询数据库数据的进度条
江湖的大哥大姐们,请你们帮我想个思路。就是我现在想做个多条件查询进度条,但是这个查询会消耗时间比较长,然后我想做个真实的进度条来反应处数据的查询状态,比如说Query qgaslist=(Query) session.createQuery(hql);执行这个查询要消耗30秒钟,但是我在开始点击查询按钮的时候并不知道它要查询多久,这样的情况怎么做进度条,也就是说这句执行完了,那么进度条也就跑完了.请大哥大姐们帮忙哈。谢谢了。。

------解决方案--------------------
要进度条?你的意思就是在你查询时,比如说点击一个按钮,然后就出现一个进度条,用来体现数据库那边的查询进度。
这个真没必要,也没什么好处。代价很大。
一定要实现的话,我的思路: 你可以用Ajax异步提交,然后在显示的时候也使用ajax,每隔一秒就回调一次数据库那边的进度。
------解决方案--------------------
引用:
要进度条?你的意思就是在你查询时,比如说点击一个按钮,然后就出现一个进度条,用来体现数据库那边的查询进度。
这个真没必要,也没什么好处。代价很大。
一定要实现的话,我的思路: 你可以用Ajax异步提交,然后在显示的时候也使用ajax,每隔一秒就回调一次数据库那边的进度。


根据AJAX的几个返回状态进行进图条,或者文字提示:
0---->连接还没有建立,就是open还没有被调用
1---------->连接已经建立,但是还没有发送请求
2---------->请求已经发送
3---------->服务器正在响应,正在和服务器进行交互
4---------->响应结束

------解决方案--------------------
运行的时间是不好精确预测的......

运行的时候受到  并发\CPU耗费\用户I/O\死锁\索引(正序,反序)  等等原因,执行了以后才能精确得到.

所以,还是使用ajax来调用这个:

xmlHttpRequest.onreadystatechange=function(){
    alert(xmlHttpRequest.readyState);//调试方法,表示当前的状态码.
    //X 如上
    if(xmlHttpRequest.readyState==X){
         //显示相应的GIF图片,或者不同的文字提示
    }
}

------解决方案--------------------
引用:
楼上的大哥谢谢哈!顺便多问句
采用ajax是不是在执行Query qgaslist=(Query) session.createQuery(hql);这句话的时候进行
0---->连接还没有建立,就是open还没有被调用
1---------->连接已经建立,但是还没有发送请求
2---------->请求已经发送
3---------->服务器正在响应,正在和服务器进行交互
4--……


你的是JAVA里面的代码哈.....我上面发的是JS里面的代码..... 
------解决方案--------------------
我觉得用ajax做异步提交好.

数据库有1000W条记录,可以分开查询.比如分10次,每完成100W条查询,返回完成,进度条跳一格,继续查询下100w. 

------解决方案--------------------
还是干脆搞个gif图片扔上去吧!