ajax等待返回结果时,弹出一个友好的等待窗口

chenxiang_java 2012-05-06 10:49:05
现在我用ajax异步发送请求,由于action要处理数据需要很长时间。所以我想在这期间显示一个友好的等待界面,当数据成功返回时,这个窗口又消失。要求:不用jquery。最好是有代码。

希望大家不惜赐教。
...全文
627 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenxiang_java 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

你给一个层吧,如果readyState != 4 你就让层出现,如果等于4你就让层消失。这样就可以了。
[/Quote]能否给个例子
licip 2012-05-07
  • 打赏
  • 举报
回复
你给一个层吧,如果readyState != 4 你就让层出现,如果等于4你就让层消失。这样就可以了。
吴红军 2012-05-07
  • 打赏
  • 举报
回复
子窗口调用父窗口top.window.document.getElementById('div id') 后面你懂的了。
chenxiang_java 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

JScript code

var xmlHttpRequest = null;

//alert(window.ActiveXObject); //判断是否IE

if(window.ActiveXObject){

//如果是IE

xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");

} else if(window.XMLH……
[/Quote]
你这个不就是ajax,这个我会,我需要的是个请求等待页面。就是后台还未响应数据的时候的等待窗口。
chenxiang_java 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

说的这么清楚你还不懂,是不是div都不会写?div里面放个图片,把他隐藏起来,然后在readyState!=4就显示,=4就消失呀,不认真看代码,不认真思考,老是给代码,那不还是别人写的,自己还是不懂。
[/Quote]这个显示我会啊 ,我是说这个div这么以一个窗口显示,就是当div显示的时候,父窗口就不能进行操作。这个是怎么实现的
吴红军 2012-05-07
  • 打赏
  • 举报
回复
说的这么清楚你还不懂,是不是div都不会写?div里面放个图片,把他隐藏起来,然后在readyState!=4就显示,=4就消失呀,不认真看代码,不认真思考,老是给代码,那不还是别人写的,自己还是不懂。
吴红军 2012-05-06
  • 打赏
  • 举报
回复

var xmlHttpRequest = null;

//alert(window.ActiveXObject); //判断是否IE

if(window.ActiveXObject){

//如果是IE

xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");

} else if(window.XMLHttpRequest){

//非IE

xmlHttpRequest = new XMLHttpRequest();

}

//xmlHttpRequest对象已经生成了,接下来向服务器发送请求了!

if(null != xmlHttpRequest){

//open表示准备向服务器发送请求!

//第一个参数,表示使用什么方式去请求:

//第二个参数,表示的是请求的url;

//第三个参数,表示是否以异步方式发送请求:true表示是,这里是关键,false的话表示同步,取到数据之后再执行后面的操作,这时候浏览器不会响应了,鼠标也没作用,直到服务器数据返回,true的话,表示异步,你可以继续操作,鼠标也可以点击,你的问题关键点就是这里

xmlHttpRequest.open("GET", "helloworld.txt", true);

//监听状态改变,关联好回调函数。也就是每一步状态的改变都会调用到这个ajaxCallback.

//onreadystatechange总共有四个状态为,只有当这个状态真正达到了最后一步再进行调用回调函数

xmlHttpRequest.onreadystatechange = ajaxCallback;

//真正向服务器端发送数据

//调用send方法时,如果是post方式,则参数以key/value方式通过send方式进行传输;

//如果是get方式,则send方法传参为空!参数跟在url?name=value第二个参数后面

xmlHttpRequest.send(null);

}



function ajaxCallback(){

//只需要判断是否已经发送请求,并且已经返回值了,才进行处理返回值!

if(xmlHttpRequest.readyState == 4){

alert(xmlHttpRequest.status); //通过服务器发送请求,只有返回值后,这个status才为200;

//////////////////////////////////////

//如果是两个页面本身在本地进行ajax尝试,则返回值status=0.记住,这里返回是0.因为没有通过服务器请求

/////////////////////////////////////

if(xmlHttpRequest.status == 200){

var responseText = xmlHttpRequest.responseText;

alert(responseText);

}

}

}

};

52,782

社区成员

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

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