AJAX
Asynchronous Javascript And XML (异步 JavaScript 和 XML):是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。
AJAX 不是编程语言。AJAX 组合了
:
- 浏览器内建的 XMLHttpRequest 对象(从 web 服务器请求数据)。
- JavaScript 和 HTML DOM(显示或使用数据)。
AJAX工作原理:
执行过程:
网页中发生一个事件(页面加载、按钮点击)
由 JavaScript 创建 XMLHttpRequest 对象 XMLHttpRequest
对象向 web 服务器发送请求
服务器处理该请求
服务器将响应发送回网页
由 JavaScript 读取响应
由 JavaScript 执行正确的动作(比如更新页面)
XMLHttpRequest 对象。
Ajax 的核心是 XMLHttpRequest 对象
。
所有现代浏览器都支持 XMLHttpRequest 对象,都有内建的 XMLHttpRequest 对象。。XMLHttpRequest 对象用于同幕后服务器交换数据。
创建 XMLHttpRequest 对象:
variable = new XMLHttpRequest();
if (window.XMLHttpRequest) {
// 用于现代浏览器的代码
xmlhttp = new XMLHttpRequest();
} else {
// 应对老版本 IE 浏览器的代码
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
XMLHttpRequest 对象方法:
方法 | 描述 |
---|---|
new XMLHttpRequest() | 创建新的 XMLHttpRequest 对象 |
abort() | 取消当前请求 |
getAllResponseHeaders() | 返回头部信息 |
getResponseHeader() | 返回特定的头部信息 |
open(method, url, async, user, psw) | 规定请求: method:请求类型 GET 或 POST。 url:文件位置。 async:true(异步)或 false(同步)。 user:可选的用户名称。 psw:可选的密码。 |
send() | 将请求发送到服务器,用于 GET 请求 |
send(string) | 将请求发送到服务器,用于 POST 请求 |
setRequestHeader() | 向要发送的报头添加标签/值对 |
XMLHttpRequest 对象属性:
属性 | 描述 |
---|---|
onreadystatechange | 定义当 readyState 属性发生变化时被调用的函数 |
readyState | 保存 XMLHttpRequest 的状态。 0:请求未初始化 1:服务器连接已建立 2:请求已收到 3:正在处理请求 4:请求已完成且响应已就绪 |
responseText | 以字符串返回响应数据 |
responseXML | 以 XML 数据返回响应数据 |
status | 返回请求的状态号 200: "OK" 403: "Forbidden" 404: “Not Found” |
statusText | 返回状态文本(比如 “OK” 或 “Not Found”) |