XMLHttpRequest是一个重要的js对象,它是Ajax技术的核心。Ajax全称是Asynchronous JavaScript and XML,中文翻译是异步的JavaScript和XML,它是CSS、HTML、JavaScript、HTTP等多种技术的组合方案,并不是一种新技术。
通过该功能,我们可以在JavaScript脚本中向服务器请求数据,然后更新到DOM中。这一过程无须卸载页面,会带来更好的用户体验。Ajax大致包括四个步骤:创建Ajax对象、发送HTTP请求、接收处理数据、更新DOM。一个典型的Ajax发送json数据的示例如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18function ajax() {
const person = {
name: 'jack',
age: 20
};
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200 || xhr.status == 304) {
let time = document.getElementById('time');
console.log(xhr.responseText);
}
}
}
xhr.open('post', '/time', true);
xhr.setRequestHeader("Content-type", "application/json;charset=utf-8");
xhr.send(JSON.stringify(person));
}
发展历程
Ajax这一名称出现在其技术实现之后,早在1998年,微软Outlook Web Access小组就写成了允许客户端脚本发送HTTP请求(XMLHTTP)的第一个组件,直到2005年该名词才被提出。后来各大浏览器纷纷效仿也提供了这个接口,所以就造成了早期的IE浏览器和其他厂商浏览器对Ajax的实现不一致的情况。后来W3C对其进行了标准化,推出了XMLHttpRequest标准。XMLHttpRequest标准又分为Level 1和Level 2。