<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>xmlhttprequest ajax demo</title>
<script type ="text/javascript" language ="javascript" >
var req; //定义变量,用来创建xmlhttprequest对象
function creatReq() // 创建xmlhttprequest,ajax开始
{
var url="ajaxServer.aspx"; //要请求的服务端地址
if(window.XMLHttpRequest) //非IE浏览器及IE7(7.0及以上版本),用xmlhttprequest对象创建
{
req=new XMLHttpRequest();
}
else if(window.ActiveXObject) //IE(6.0及以下版本)浏览器用activexobject对象创建,如果用户浏览器禁用了ActiveX,可能会失败. {
req=new ActiveXObject("Microsoft.XMLHttp");
}
if(req) //成功创建xmlhttprequest
{
req.open("GET",url,true); //与服务端建立连接(请求方式post或get,地址,true表示异步)
req.onreadystatechange = callback; //指定回调函数
req.send(null); //发送请求
}
}
function callback() //回调函数,对服务端的响应处理,监视response状态
{
if(req.readystate==4) //请求状态为4表示成功
{
if(req.status==200) //http状态200表示OK
{
Dispaly(); //所有状态成功,执行此函数,显示数据
}
else //http返回状态失败
{
alert("服务端返回状态" + req.statusText);
}
}
else //请求状态还没有成功,页面等待
{
document .getElementById ("myTime").innerHTML ="数据加载中";
}
}
function Dispaly() //接受服务端返回的数据,对其进行显示
{
document .getElementById ("myTime").innerHTML =req.responseText;
}
</script>
</head>
<body>
<div id="myTime"></div>
<input id="Button1" type="button" value="Get Time" onclick ="creatReq();"/>
</body>
</html>
对于Ajax需要注意执行 的 顺序
对于input 类型为text的 动作有 onChange() onPropertyChange() 后者比前者的反应 更加的敏感,有可能onChange()不会随着里面的改变而改变,但是onPropertyChange()肯定会随着value的值 改变而改变。
对于返回的值,要把结果写在最后的条件都符合的情况下,就是注意函数的位置。
操作xml的时候 用到的方法 和以前操作xml的是一样的,如getElementsByTagName(),还有.firstChild.data,nodeValue.
Ajax执行的顺序是open,onreadystatechange,send 都是基于流的形式传输。
对于servlet里面 注意 都是 用流的形式进行 传输和取值。resp.setContentType(),里面得相应的设置方式。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zuowangxi/archive/2009/12/30/5104036.aspx