如何用ajax实现,后台处理长时间的业务时,显示页面等待进度条

kingyanbin 2009-01-22 03:00:19
如题:如何用ajax实现,后台处理长时间的业务时,显示页面等待进度条?

本人的一个J2EE项目中,用户有不少操作都会要后台处理很久,等待时间很长
所以希望能在等待的时间有一个反馈/提示的信息

本人对ajax并不是很熟,所以想问问大家有没有这方面的教程/参考资料/例子之类的

另外除了ajax还有其他方法能实现否?

万分感谢
...全文
1689 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fjfox 2009-02-10
  • 打赏
  • 举报
回复
用 readyState
kingyanbin 2009-02-03
  • 打赏
  • 举报
回复
感谢各位
uramiyahonpo 2009-02-03
  • 打赏
  • 举报
回复
我刚才试了下,很简单

if(xmlhttp.requestState == 4){

}else{

//在这里写一个进度条显示的代码就行了
}
uramiyahonpo 2009-02-03
  • 打赏
  • 举报
回复
可以通过判断readyState的方法来实现吧
kadach11 2009-02-02
  • 打赏
  • 举报
回复
我这里刚好有个例子,供楼主参考,实例的效果如QQ相册中间有个进度效果!
<script type="text/javascript" language="javascript">
//获得两个层 灰色透明背景层 和 进度圈层
function countNumber(bgdiv,msgdiv){
bgdiv.style.width=document.body.offsetWidth;
bgdiv.style.height=document.body.offsetHeight;
bgdiv.style.display=""; //请求该方法时显示
msgdiv.style.display=""; //请求该方法时显示
var xmlhttp;
try{
xmlhttp = new ActiveXObject('Msxml2.XMLHTTP')
} catch(e){
try{
xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
} catch(e){
try{
xmlhttp=new XMLHttpRequest();
}catch(e){}
}
}

...............(省略逻辑方法)

xmlhttp.open("post","url",true);
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4){
bgdiv.style.display="none"; //请求有响应时隐藏该层
msgdiv.style.display="none"; //请求有响应时隐藏该层
if (xmlhttp.status==200){
.............(省略逻辑方法)
}
}
}
xmlhttp.send(null);
}
</script>
zhulei2008 2009-02-01
  • 打赏
  • 举报
回复
发送请求的时候用一个图片进行显示

接收到了返回值再将图片隐藏掉

这个比较简单的,

楼主可以借助一些开源的Ajax框架,
DWR、jquery之类的
都有封装显示Loading的方法的
wanzegui 2009-01-23
  • 打赏
  • 举报
回复
利用AJAX的UpdatePanel控件,可以让一直等到!
mrshelly 2009-01-22
  • 打赏
  • 举报
回复
这个关键是如何为 ajax 提供进度数据(这个是难点),
需要你有足够的架构经验.....

一般说来,在你的长时间处理进程里,把进度状态数据记录到一个公共的地方,然后起一个AJAX接口,每一次AJAX请求时,从公共的地方去取这些数据,并返回给客户端进行进度条的显示即可.

明白原理了,就好写了.
bluefcxt 2009-01-22
  • 打赏
  • 举报
回复
控制一下进度条的display就可以了 发送请求的时候就block 请求结束在onready回调函数中再none
lonelyriver 2009-01-22
  • 打赏
  • 举报
回复
sf?

52,799

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧