php设置异步事件,PHP编程实战15.2.3 Ajax的同步和异步事件

var xhr=new XMLHttpRequest();

请求方法: {"GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS"}之一

URL: 请求的URL. 可以是PHP JavaScript HTML i纯文本或者其他的文件类型

异步的(可选): 默认为true,表示非阻塞调用.

用户名(可选): 请求的服务器需要验证身份时候的用户名.

密码(可选): 请求的服务器需要验证身份时候的密码.

同步调用

没有监听,JavaScript代码会等到服务器响应之后再继续执行。在收听到响应后,响应的数据会自动填充XHR对象的属性,相关的属性简介如下:

responseText:作为响应主题被返回的文本。

reponseXML:如果响应的内容类型是“text/xml”或“application/xml”,这个属性中将保存包含着响应数据的XML DOM文档。

status:响应的HTTP状态的说明。

statusText:HTTP状态的说明。

应该像下面这样检查同步请求的状态码

xhr.open("get", "example.txt", false);

xhr.send(null);

if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {

alert(xhr.statusText);

} else {

alert("Request was unsuccessful: " + xhr.status);

}

通过检测status来解决下一步的操作,不要依赖statusText,因为后者在跨浏览器使用时不太可靠。

异步调用 onreadystatechange回调函数监听

检测XHR对象的readyState属性

0:为初始化。尚未调用open()方法。

1:启动。已经调用open()方法,但尚未调用send()方法。

2:发送。已经调用send()方法,但尚未接收到相应。

3:接受。已经接受到部分相应的数据。

4:完成。已经接受到全部相应数据,而且已经可以在客户端使用了。

必须在调用open()之前指定onreadystatechange事件处理程序才能确保跨浏览器兼容性。这里采用跨浏览器安全的DOM0级方法

var xhr = createXHR();

xhr.onreadystatechange = function () {

if (xhr.readyState == 4) {

if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {

alert(xhr.statusText);

} else {

alert("Request was unsuccessful: " + xhr.status);

}

}

};

xhr.open("get", "example.txt", true);

xhr.send(null);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值