您的位置:首页 > 其它

AjaxPro的原理简单说明

2006-07-29 22:56 218 查看
//鉴于很多网友在问AjaxPro的工作原理简单说明,就写了这份js,希望对初学者有点帮助,没有测试过,只是解释了Ajax得原理
//我也是接触js和Ajax时间不长,错误之处多多指正,同时欢迎大家多到 http://www.shareach.com灌水 //执行步骤是:
// 调用callAjaxMethod:
// url:正常得URL,如:http://www.shareach.com/test1.aspx?id=2
// callbackFunc:异步方式调用后回调得函数,这个函数需要你自己写,如function MyCallBack(res){..}
// 说明:callAjaxMethod会衣次执行 AjaxObject、CreateXMLHttpRequest、CallServer,最后等待OnRecvCallback发生
// 作者:Shareach站长
// 网址:http://www.shareach.com
/***************************************************************************/
function callAjaxMethod(url,callbackFunc)
{
var oAjax=AjaxObject(url,callbackFunc);
oAjax.URL = url;
oAjax.callBackFunc = callbackFunc;
oAjax.CallServer();
}

//创建对象
function AjaxObject()
{
this.XMLReq = this.CreateXMLHttpRequest();
this.URL = "";
this.callBackFunc = null;
this.Base = this;
}

//第一步、创建HttpRequest对象
AjaxObject.prototype.CreateXMLHttpRequest=function()
{
var oXMLHttpRequest = false;
if (window.XMLHttpRequest)
{//创建 XMLHttpRequest对象,非IE
oXMLHttpRequest = new XMLHttpRequest();
}else if (window.ActiveXObject)
{// 如果是IE,就以Active方式创建
try {//创建最新版本得对象
oXMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1)
{
try {//尝试老版本
oXMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {}//创建不起来就是失败
}
}
return oXMLHttpRequest;
}

//第二步发送请求
//url就是正常得URL,如:http://www.shareach.com/test1.aspx?id=2
CreateXMLHttpRequest.prototype.CallServer = function() {
if (!(Base.XMLReq))//没有创建成功XMLHttpRequest
return;
//链接服务器
Base.XMLReq.open("GET", Base.URL, true);
//等待接受信息
Base.XMLReq.onreadystatechange = OnRecvCallback;
// Send the request
Base.XMLReq.send(null);
}

//第三步,等待信息到达
CreateXMLHttpRequest.prototype.OnRecvCallback = function() {
if (Base.XMLReq.readyState == 4) {
var response = Base.XMLReq.responseText;
//执行回调
Base.callBackFunc(response);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: