AJAX(Asynchronous JavaScript and XML)
其实是多种技术的综合
n AJAX的四个主要组件
¨XMLHttpRequest
¨JavaScript ¨CSS
¨DOM
异步通讯
利
¨带来更好的用户体验
¨把一些服务器负担的工作转嫁到客户端
¨可以调用外部数据。
¨基于标准化的并被广泛支持的技术,不需要下
载插件或者小程序。
¨进一步促进页面呈现和数据的分离。
弊
¨浏览器的支持:AJAX 大量使用了Javascript 和AJAX
引擎,IE5.0 及以上、Mozilla1.0、NetScape7 及以上
版本才支持,Mozilla 虽然也支持AJAX,但是提供
XMLHttpRequest 的方式不一样。
¨后退功能失效:AJAX 更新页面内容的时候并没有刷新
整个页面。
¨对流媒体的支持:没有FLASH好。
¨一些手持设备(如手机、PDA 等):现在还不能很好
的支持Ajax
XMLHttpRequest对象
¨ XMLHttpRequest最早是在IE5中以ActiveX组件形式实现
¨ XMLHttpRequest在其他浏览器中以本地JS对象实现
var xhr;
function createXMLHttpRequest(){
if (window.ActiveXObject){
try{
xhr = new ActiveXObject("Msxml2.XMLHTTP"); // IE5
}catch(e){
xhr = new ActiveXObject("Microsoft.XMLHTTP"); // IE5.5
}
}else if (window.XMLHttpRequest){
xhr = new XMLHttpRequest(); // firefox
}
}
XMLHttpRequest方法
¨ open(“method”,”url”):建立对服务器的调用,
¨ send(content):向服务器发送请求
n GET方式时一般为NULL
n POST方式是,数据用此方法发送
¨ setRequestHeader(“header”,”value”):为首部设定值,
之前必须调用open方法
¨ getResponseHeader(“header”):返回指定首部的串值
¨ abort:停止当前请求
XMLHttpRequest属性
¨ readyState:请求的状态。有5个可取值:0=未初始
化,1=正在加载,2=已加载。3=交互中,4=完成
¨ onreadystatechange:每个状态改变时都会触发这个事
件处理器,通常会调用一个JavaScript函数
¨ status:服务器的HTTP状态码(200为ok,404为Not
Found)
¨ statusText:HTTP状态码的对应文本(OK,NOT
Found等)
responseText:服务器的响应,表示为一个文本串
¨ responseXML:服务器的响应,表示为XML,这个对象
可以解析成一个DOM对象
发送简单请求步骤 ¨创建XHR对象 ¨注册事件 ¨创建一个请求 ¨发送一个请求 ¨内容解析(responseText、responseXML)