Ajax入门
什么是Ajax?
全称为Asynchronous JavaScript And XML,异步JavaScript和XML技术。是由JavaScript、XML、DOM、CSS等多种已有技术组合而成的一种浏览器端技术。用于实现与服务器进行异步交互的功能。
相较于传统网页,使用Ajax技术的优势具体有以下几个方面。
传统网站从浏览器端向服务器端发送请求的工作原理
Ajax网站从浏览器端向服务器端发送请求的工作原理
XMLHttpRequest对象
XMLHttpRequest对象最初是在IE5中以ActiveX组件的形式实现的。其后在Mozilla、Safari等浏览器中相继实现,才成为事实上的标准。目前FireFox、Safari、Opera和IE7中都以类似的方式实现了XMLHttpRequest对象。
由于XMLHttpRequest不是w3c的标准,可以采用多种方法创建XMLHttpRequest对象。在使用XMLHttpRequest对象发生请求和处理之前,必须首先使用JavaScript获XMLHttpRequest得对象。
获得XMLHttpRequest对象
W3C标准:
var xml = new XMLHttpRequest()
XMLHttpRequest属性
属性 | 描述 |
---|---|
Onreadystatechange | 每次状态改变所触发事件的事件处理程序 |
readyState | 对象状态值: 0 = 未初始化(uninitialized) 1 = 正在加载(loading) 2 = 加载完毕(loaded) 3 = 交互(interactive) 4 = 完成(complete) |
responseText | 从服务器进程返回的数据的字符串形式 |
responseXML | 从服务器进程返回的DOM兼容的文档数据对象 |
status | 从服务器返回的数字代码,如404(未找到)或200(就绪) |
statusText | 伴随状态码的字符串信息 |
XMLHttpRequest方法
方法 | 描述 |
---|---|
abort() | 停止当前请求 |
getAllResponseHeaders() | 将所有HTTP请求的响应首部作为键/值对返回 |
getResponseHeader(”header”) | 返回指定响应的首部信息 |
open(”method”,”URL”) | 建立对服务器的调用,方法通常是post或get,URL可以绝对路径或相对路径 |
send(content) | 向服务器发送请求,参数可以是null |
setRequestHeader(”header”, ”value”) | 设置HTTP请求的首部信息,可以向服务器传递参数,这个方法必须在open之后调用。 |
Ajax状态码
Ajax状态码 | 说明 |
---|---|
0 | 请求未初始化(还没有调用open()方法) |
1 | 请求已经建立,但是还没有发送(还没有调用send()方法) |
2 | 请求已经发送 |
3 | 请求正在处理中,通常响应中已经有部分数据可以用了 |
4 | 响应已经完成,可以获取并使用服务器的响应了 |