【每日一题】对Ajax的理解?并实现一个Ajax请求
什么是Ajax?
Ajax说一种异步请求数据的Web开发技术,对于改善用户的体验和页面性能提升很有帮助。简单地说,Ajax实现了在不重新刷新页面的情况下,通过异步请求来获取后台数据,并在网页上呈现出来。同时,Ajax请求获取的是数据而不是一整个HTML文档,因此也节省了网络带宽,让用户的使用体验变得更加流畅。
Ajax的目的?
- 提高用户体验,使用较少的网络数据的传输量
实现一个Ajax请求
const SERVER_URL = "/server";
// 1.创建一个XMLHttpRequest对象
let xhr = new XMLHttpRequest();
// 2.在这个对象上使用open方法创建一个 Http 请求
// open方法所需要的参数上请求的方法、请求的地址、是否异步喝用户的认证信息
xhr.open("GET", url, true);
// 3.在发起请求前,可以为这个对象添加一些信息和状态监听函数
xhr.onreadystatechange = function() {
// 设置监听函数后,当对象的readyState变为4的时候,代表服务器返回的数据接收完成
// readyState是XMLHttpRequest对象的一个属性,用来标识当前XMLHttpRequest对象处于什么状态。
// readyState总共有5个状态值,分别为0~4,每个值代表了不同的含义
// 0:未初始化 -- 尚未调用.open()方法;
// 1:启动 -- 已经调用.open()方法,但尚未调用.send()方法;
// 2:发送 -- 已经调用.send()方法,但尚未接收到响应;
// 3:接收 -- 已经接收到部分响应数据;
// 4:完成 -- 已经接收到全部响应数据,而且已经可以在客户端使用了;
if (this.readyState !== 4) return;
// 当请求成功时
if (this.status === 200) {
handle(this.response);
} else {
console.error(this.statusText);
}
};
// 设置请求失败时的监听函数
xhr.onerror = function() {
console.error(this.statusText);
};
// 设置请求头信息
xhr.responseType = "json";
xhr.setRequestHeader("Accept", "application/json");
// 4.当对象的属性和监听函数设置完成后,最后调用sent方法来向服务器发送 Http 请求,可以传入参数作为发送的数据体
xhr.send(null);
\