众所周知ajax的意思是异步JavaScript和XML(Asynchronous JavaScript and XML)。这项技术的核心就是通过浏览器发出一个异步的HTTP请求来调用服务端的网页或服务。
要使用ajax技术,得创建一个XMLHttpRequest对象。Internet Explorer把XMLHttpRequest实现为一个ActiveX对象,其他浏览器(如Firefox、Safari和Opera)把它实现为一个本地JavaScript对象,所以为了可以在不同浏览器都可以使用,这个XMLHttpRequest对象得如下面这样创建。
定义XMLHttpRequest对象
<script language="javascript" type="text/javascript">
var xmlhttp ;
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
</script>
定义完后就可以向服务器发送请求了
向服务器发出请求
function Query(url)
{
xmlHttp.open("GET", url);第一个参数是请求方法通常是GET或POST,第二个参数是发送的url地址
xmlHttp.onreadystatechange = updateDetails;//完成后要触发的事件
xmlHttp.send(null);
}
实例化updateDetails()函数获取服务器返回的数据
function updateDetails()
{
通过判断xmlHttp.readyState属性来进行不同性况的判断
readyState有五种可能的值:
0 (未初始化): (XMLHttpRequest)对象已经创建,但还没有调用open()方法。
1 (载入):已经调用open() 方法,但尚未发送请求。
2 (载入完成): 请求已经发送完成。
3 (交互):可以接收到部分响应数据。
4 (完成):已经接收到了全部数据,并且连接已经关闭。
}
以下是一幅从网上下载来的ajax交互原理图