最近想学一门新手艺,一直听说php学习快,开发也快,所以就马上找来教学视频来看,php100上的,别说学起来势必java快很多啊,好了,闲话不说,进入正题。
今天在学习php和ajax结合运用的时候遇到了一个问题,现在我需要实现一个进度条的效果,就是在使用ajax异步刷新的时候如果等待时间长就出现一个等待的图片告知用户,主要的实现原理就是利用readystate的5中取值来实现,大家都知道readystate表示XMLHTTP请求的当前状态;
0 (未初始化)
|
对象已建立,但是尚未初始化(尚未调用open方法)
|
1 (初始化)
|
对象已建立,尚未调用send方法
|
2 (发送数据)
|
send方法已调用,但是当前的状态及http头未知
|
3 (数据传送中)
|
已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,
|
4 (完成)
|
数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据
|
可以利用readystate==1尚未调用send方法时的状态,在此时刻插入等待的图片,当readystate==4时,返回结果显示。但是在实际情况中却并不如意,我使用Chrome和Firefox都无法获取readystate==1的状态,从输出的情况看只有2,3,4的状态,以下是代码:
var xmlHttp; //获取XmlHttpRequest对象 function $_xmlhttprequest() { if(window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else { xmlHttp = new XMLHttpRequest(); } }