我们在做每件事情的时候都会分先后循序,什么时间段做什么事情,而 ajax 亦是一样,我们在使用原生 ajax 发送请求时,也是有一个过程,而聪明到没头发(聪明绝顶)的程序员将这个过程分为了五个阶段,每一个阶段对应不同的事件。
readyState的五个状态值分别是
| 值 | 状态 | 描述 |
|---|---|---|
0 | UNSENT | 代理被创建,但尚未调用 open() 方法。 |
1 | OPENED | open() 方法已经被调用。 |
2 | HEADERS_RECEIVED | send() 方法已经被调用,并且头部和状态已经可获得。 |
3 | LOADING | 下载中;responseText 属性已经包含部分数据。 |
4 | DONE | 下载操作已完成。 |
1: 初始化 XMLHttpRequest 对象,此时这个对象已被创建但是 open() 方法未被调用
2: 调用 open() 方法 ,在 open() 这个方法中填写请求方式和请求地址,前端培训在这个阶段时可以使用 setRequestHeader() 添加请求头信息
3: 调用 send() 方法,将请求发送至服务端
4: 响应体部分正在被接收。如果 responseType 属性是“text”或空字符串, responseText 将会在载入的过程中拥有部分响应数据
5: 请求发送完毕,此时意味着请求彻底完成或者发送失败
举个简单的例子
将请求这个过程比喻成上网买东西
0 : 此时是点击立即购买的时候
1 : 在这个阶段对应的就是选择付款方式和收货地址
2: 这里对应的就是立即付款
3 : 在这里对应的就是,当你点击立即付款之后他会将物品发货也就是返回了数据,但又没完全返回,对应的就是你已经可以宣布收到物品了但又没完全收到。
4 : 此时就是你收到货物了,脸上露出了猥琐的笑容,浅浅的笑容就让你感到比中奖还要光荣,拆完箱子之后就决定这个商品喜不喜欢,喜欢就请求完成,不喜欢就退货请求失败。
本文详细解析了Ajax请求的五个关键阶段:创建、配置、发送、接收响应和完成。通过生活购物场景比喻,理解每个阶段的作用,包括readyState的状态变化及其对应事件。
1万+

被折叠的 条评论
为什么被折叠?



