Ajax
时间:2011-04-23 来源:阿 & 文
//所谓Ajax技术实际上就是浏览器的成异步传输技术
//声明XMLHttpRequest对象
//XMLHttpRequest对象是用来完成异步传输模式的核心对象
var xmlHttp
function createXMLHttpRequest()
{
var xp;
try
{
//不同的浏览器所创建的XMLHttpRequest对象,和创建方式不尽相同
//这里使用异常处理的方式来获得正确的XMLHttpRequest对象创建
// Firefox, Opera 8.0+, Safari
xp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer浏览器的XMLHttpRequest对象的创建
//Msxml2.XMLHTTP和 Microsoft.XMLHTTP是针对ie的不同版本,ie6以后统一是Msxml2.XMLHTTP
try
{
xp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xp=null;
}
}
}
return xp;
}
//初始化并执行异步,参数url是异步所请求的页面
function runMethod(executeBacked,url,asyn)
{ asyn = (asyn === undefined)? true: asyn;
xmlHttp=createXMLHttpRequest();
//指定异步对象的回调函数
xmlHttp.onreadystatechange=function(){ backMethod(executeBacked); }
//确定发送请求方式,URL,及是否同步执行下段代码
//固定写法
xmlHttp.open("GET",url,asyn);
//执行异步,固定写法
xmlHttp.send(null);
}
//初始化并执行异步,参数url是异步所请求的页面
function PostRunMethod(executeBacked,parameter,url,asyn) //请求成功后执行函数,post传递的值,请求路径,s是否异步 默认为是!
{
xmlHttp=createXMLHttpRequest();
//指定异步对象的回调函数
asyn = (asyn === undefined)? true: asyn; //当没有第一是否异步的时候默认为异步
//xmlHttp.onreadystatechange=backMethod;
xmlHttp.onreadystatechange=function(){ backMethod(executeBacked); };
//确定发送请求方式,URL,及是否同步执行下段代码
xmlHttp.open("post",url,asyn);
//执行异步
// xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-Tpye","application/x-www-form-urlencoded"); //post需要设置头文件!
xmlHttp.send(parameter);
}
//回调函数,即异步返回后执行的代码,由用户编写
function backMethod(executeBacked) //函数返回true 或者 false 判断是否成功执行
{
var v;
if(xmlHttp.readyState==4) //判断对象状态
{
if(xmlHttp.status==200) //信息已成功返回,开始处理信息
{
v=xmlHttp.responseText; //获得服务器Response返回的字符流
executeBacked(v) //执行请求结果正确后的函数!
}
else //信息返回不正常
{
//alert("信息反回异常!");
executeBacked(false)
}
}
}