AJAX基础
- 什么是AJAX?
- Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
- AJAX不是一个技术,二十多个技术的联合产物。
- AJAX是浏览器客户端上的前端技术,只要是web开发,不管服务器端的编程语言是哪一种,AJAX都是很重要的。
- 异步和同步有什么区别?
- 异步:A线程和B线程并发执行谁也不等待谁
- 同步:当A线程执行的时候B线程需要等待,当B线程执行的时候A线程也需要等待,这就是同步
- 使用AJAX可以做到异步
- 浏览器本身也是支持多线程并发的,其中ajax就是一个线程,一个页面上可以同时发送多个AJAX请求。
- 使用传统的请求方式,请求只能发送一次,当一次请求发送,整个浏览器页面被锁住,无法点击其他按钮发送其他请求,浏览器会将本页面的全部数据清空,迎接新的页面。
- AJAX主要解决的就是页面的局部刷新,使用AJAX可以在同一个网页中发送多个请求,每个请求之间互不干扰,以提高用户的体验。
- 核心对象 XMLHttpRequest对象
- 当需要异步与服务器交换数据时,需要XMLHttpRequest对象来异步交换。
- 发送AJAX请求全靠浏览器内置对象XmlHttpRequest,使用XmlHttpRequest对象可以在浏览器中单独启动一个浏览器线程,通过浏览器线程发送该请从而达到异步效果。
- XMLHttpRequest对象的主要属性有:
- onreadystatechange —— readystate属性值每改变一次,就会触发一次事件处理程序。
- responseText —— 从服务器进程返回数据的字符串形式。
- responseXML —— 从服务器进程返回的DOM兼容的文档数据对象。
、 - status —— 从服务器返回的数字代码,如404(未找到) 和 200(已就绪)。
- status Text —— 伴随状态码的字符串信息。
- readyState —— 对象状态值。对象状态值有以下几个:
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了