引言
XHLHttpRequest(XHR)是现代web开发中不可或缺的技术之一。它允许我们在不断刷新整个页面的情况下,与服务器进行数据交换,readyState是XHR的一个属性,它表示请求/响应过程的当前活动阶段。了解readyState对于高效使用(XHR)至关重要。
什么是XHLHttpRequest?
readyState是XHLHttpRequest对象的一个只读属性,它代表了当前的只读状态,readystate的值是一个整数,它随着请求过程的不同阶段而变化
- 0 (UNSENT):请求未初始化。尚未调用open()方法
- 1 (OPEND):服务器连接已建立,已调用open()方法,但尚未调用send()方法
- 2 (HEANDERS_RECEICED):请求已接收,send()方法已经调用,且头部和状态已可获取
- 3 (LOADING):请求获取中,响应体正在下载中,此时部分数据可能已经可用。
- 4 (DONE):请求完成。整个请求过程已完成,且数据响应已就绪。
如何使用XHR readyState?
要使用readtState我们首先要new一个XHLHttpRequest实例,然后通过一个事件处理函数,来监听readyStateChange事件,每当readyState发生改变,都会触发这个事件。
var xhr = new XHLHttpRequest()
xhr.onreadyStateChange = () => {
if(xhr.readyState === 4 && xhr.status === 200) {
// 请求成功,处理响应数据
console.log(xhr.responsetText)
}
}
xhr.open('GET', 'http://baidu.com')
xhr.send(***)
注意事项
- readyState是一个只读属性,不可修改
- readyState的变化是同事发生的,但readyStateChange事件是异步发生的
- 在某些情况下readyState的值可能会跳过某些状态,例如从0直接到4