AJax 学习笔记二(onreadystatechange的作用)
初次接触onreadystatechange事件时,对其用途感到困惑。但经过一篇文章的引导,终于让我对这个事件有了初步的了解。
当发起一个请求时,客户端并不能预知何时会完成这个请求。为了解决这个问题,我们需要一种机制来捕捉请求的状态。XMLHttpRequest对象提供了一个非常有用的功能,那就是onreadystatechange事件。这一功能类似于回调函数的运作方式。
onreadystatechange事件允许我们指定一个事件处理函数,来处理XMLHttpRequest对象的执行结果。例如:
```javascript
ajaxObj = createAjaxObject();
var url = "/MyTodoes/FetchText?id=" + id;
ajaxObj.open("Get", url, true);
ajaxObj.onreadystatechange = changeTabCallBack;
ajaxObj.send(null);
```
通过W3C的详细解释和这些实例,我对onreadystatechange事件有了更深入的理解。
onreadystatechange事件是在XMLHttpRequest对象的readyState属性发生变化时触发的。这个readyState的值代表了请求的不同状态,我们可以在事件处理程序中根据不同的值进行不同的操作。readyState有五种可能的状态:0-尚未初始化,1-正在加载,2-加载完毕,3-正在处理,4-处理完毕。当readyState的值变为4时,我们就可以访问服务器返回的响应数据了。
在事件中判断readyState的值通常是在请求完成后进行处理,例如:
```javascript
function changeTabCallBack() {
if (ajaxObj.readyState == 4) {
// 下一步验证
}
}
```
Status属性存储了服务器端返回的Http请求响应代码,表示请求的处理结果。在Ajax开发中,最常用的响应码是200。例如:
```javascript
function changeTabCallBack() {
if (ajaxObj.readyState == 4) {
if (ajaxObj.status == 200) {
// 服务端返回了正确数据,开始响应处理
}
}
}
```
关于Http状态码的含义,常见的有:200请求成功,202请求被接受但处理未完成,错误请求,404请求资源未找到,500内部服务器错误等。
onreadystatechange事件为我们提供了一种机制,使我们能够实时了解XMLHttpRequest对象的状态,并在适当的时候进行响应处理。这使得Ajax开发更加灵活和高效。