圓梦

激情燃燒的歲月
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

简单Ajax框架

Posted on 2007-04-27 00:08  szw104  阅读(198)  评论(0)    收藏  举报

// JScript 文件
function CallBackObject()
{
      this.XmlHttp = this.GetHttpObject();
}
CallBackObject.prototype.GetHttpObject = function()
{
   var xmlhttp;
   /*@cc_on
   @if(@_jscript@_jscript_version >=5)
   try
   {
       xmlhttp = new ActiveXObject("Msxml12.XMLHTTP");
   }
   catch(e)
   {
        try
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(E)
        {
            xmlhttp = false;
        }
   }
   @else
    xmlhttp = false;
   @end @*/
   if(!xmlhttp && typeof XMLHttpReqeust != 'undefined')
   {
        try
        {
            xmlhttp = new XMLHttpRequest();
        }
        catch(e)
        {
            xmlhttp = false;
        }
   }
   return xmlhttp;
}
CallBackObject.prototype.DOCallBack = function
{
    if(this.XmlHttp)
    {
        if(this.XmlHttp.readyState ==4 || this.XmlHttp.readyState==0)
        {
            var oThis = this;
            this.XmlHttp.open('POST',URL);
            this.XmlHttp.onreadystatechange = function(){oThis.ReadyStateChange();};
            this.XmlHttp.send(null);
        }
    }
}
CallBackObject.prototype.AbortCallBack = function()
{
    if(this.XmlHttp)
        this.XmlHttp.abort();
}

CallBackObject.prototype.OnLoading = function()
{
    //Loading
}
CallBackObject.prototype.OnLoaded = function()
{
    //Loaded
}
CallBackObject.prototype.OnInteractive = function()
{
    //Interactive
}
CallBackObject.prototype.OnComplete = function()
{
    //Complete
}

CallBackObject.prototype.OnAbort = function()
{
    //Abort
}
CallBackObject.prototype.OnError = function(status,statusText)
{
    //Error
}
CallBackObject.prototype.ReadyStateChange = function()
{
    if(this.XmlHttp.readyState==1)
    {
        this.OnLoading();
    }
    else if(this.XmlHttp.readyState==2)
    {
        this.OnLoaded();
    }
    else if(this.XmlHttp.readyState==3)
    {
        this.OnInteractive();
    }
    else if(this.XmlHttp.readyState ==4)
    {
        if(this.XmlHttp.status ==0)
            this.OnAbort();
        else if(this.XmlHttp.status==200 && this.XmlHttp.statusText == "OK")
            this.OnComplete(this.XmlHttp.responseText,this.XmlHttp.responseXML);
        else
        this.OnError(this.XmlHttp.status,this.XmlHttp.statusText,this.XmlHttp.responseText);
    }
}