Ajax对象的readyState属性和onreadystatechange事件
使用Ajax对象时,浏览器使用请求对象的readyState属性来告诉回调函数请求处于其生命周期的哪一个阶段。
过程为:
request=createRequest();
0:对象建立但连接尚未初始化
request.open("GET",url,true);
1:连接初始化,请求已准备好可以发送
request.send(null);
2:请求已发送到服务器,服务器正在处理请求
3:服务器响应,正在下载数据到请求对象
4:服务器响应完成,数据准备就绪
onreadystatechange事件在每次状态改变时都会调用回调函数。
request.onreadystatechange=test;
回调函数test在每次状态改变时都会被调用执行,因此如果需要响应完成才真正执行某些代码可以这样做:
function test() { // 判断状态码是否为4 if (request.readyState == 4) { // 判断连接是否成功 if (request.status == 200) { // 成功后执行的代码 } } }
注意事件后面的回调函数是没有()的,否则变成调用了~
点赞1
支持一下