Ajax
Ajax是Asynchronous JavaScript and XML
的缩写,即为异步的JavaScript和XML,是不刷新页面的情况下,客户端和服务端也能进行异步通信的一种技术。比如强大的Google map 就是采用了这个技术。
在ES6之前,js
中的Ajax的基本流程可以概括为:
- 实例化一个
XMLHttpRequest
对象。 - 调用实例的open()方法,配置请求的
url
,必要的请求参数,请求方法。 - 调用实例的send()方法,向服务器发送请求。
- 处理响应,当请求状态
readyState
变化是会调用onreadystatechange
方法,所以用实例的onreadystatechange
属性指定处理响应的回调函数。
其中的
readyState
在整个请求的过程有五个状态:一旦readyState
改变,就会调用onreadychange
方法0:未初始化的。尚未调用open方法。
1:启动。已经调用open方法,但还未调用send方法。
2:发送。已经调用send方法,尚未收到响应。
3:接收。已经收到部分响应。
4:完成。已经接收到全部响应,并且可以在客户端使用了。这一状态是我们最关注的。
具体的代码实现:
1 | var xhr = new XMLHttpRequest(); |
其中还有许多地方需要考虑浏览器的兼容性问题。