js类编写的几种方式

1.工厂式

a.)json对象 ----------------------------------------------

var Ajax={  _XMLHTTP:false,

 Request:function(url, method, data, asy, cb)  {   Ajax._CreateXMLHTTP()   if(Ajax._XMLHTTP)   {    Ajax._XMLHTTP.onreadystatechange = function(){Ajax._Response(cb)};    Ajax._XMLHTTP.open(method,url,asy);     Ajax._XMLHTTP.setRequestHeader("If-Modified-Since","0");    Ajax._XMLHTTP.send(data);   }   else   {    alert("不能创建XMLHttpRequest对象实例")   }  },    _CreateXMLHTTP:function()  {   if(window.ActiveXObject)   {    var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];    for(var n = 0; n < MSXML.length; n ++)    {     try     {      Ajax._XMLHTTP = new ActiveXObject(MSXML[n]);      Ajax._XMLHTTP.setRequestHeader('Content-Type', 'text/html; charset=gb2312');      break;     }     catch (e){}    }   }   else if(window.XMLHttpRequest)   {    Ajax._XMLHTTP = new XMLHttpRequest();    if(Ajax._XMLHTTP.overrideMimeType)    {     Ajax._XMLHTTP.overrideMimeType("text/xml");    }   }  },

 _Response:function(cb)  {   if(Ajax._XMLHTTP.readyState == 4){    if(Ajax._XMLHTTP.status == 200)    {       cb(Ajax._XMLHTTP.responseText)

   }    else    {     cb("远端数据失败,请重新操作。")    }   }  } };

b.包装 ----------------------------------------------------------------- var _ajax$xmlHTTP=false; function _ajax$request(url, method, data, asy, cb){  _ajax$createXMLHTTP()  if(_ajax$xmlHTTP)  {   _ajax$xmlHTTP.onreadystatechange = function(){_ajax$response(cb)};   _ajax$xmlHTTP.open(method,url,asy);    _ajax$xmlHTTP.setRequestHeader("If-Modified-Since","0");   _ajax$xmlHTTP.send(data);  }  else  {   alert("不能创建XMLHttpRequest对象实例")  } } function _ajax$createXMLHTTP() {  if(window.ActiveXObject)  {   var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];   for(var n = 0; n < MSXML.length; n ++)   {    try    {     _ajax$xmlHTTP = new ActiveXObject(MSXML[n]);     _ajax$xmlHTTP.setRequestHeader('Content-Type', 'text/html; charset=gb2312');     break;    }    catch (e){}   }  }  else if(window.XMLHttpRequest)  {   _ajax$xmlHTTP = new XMLHttpRequest();   if(_ajax$xmlHTTP.overrideMimeType)   {    _ajax$xmlHTTP.overrideMimeType("text/xml");   }  } } function _ajax$response(cb){  if(_ajax$xmlHTTP.readyState == 4){      if(_ajax$xmlHTTP.status == 200)      {         cb(_ajax$xmlHTTP.responseText)

     }      else      {          cb("远端数据失败,请重新操作。")      }  }  } var Ajax={  xmlHTTP:_ajax$xmlHTTP,  request:_ajax$request,  createXMLHTTP:_ajax$createXMLHTTP,  response:_ajax$response }

c对象构适合 ---------------------------------------

var Ajax= new Object(); Ajax.HttpRequestObj=false; function _AjaxRequest(url){  if(window.XMLHttpRequest){      Ajax.HttpRequestObj = new XMLHttpRequest();      if(Ajax.HttpRequestObj.overrideMimeType){          Ajax.HttpRequestObj.overrideMimeType("text/xml");      }  }  else if(window.ActiveXObject){         var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];         for(var n = 0; n < MSXML.length; n ++)         {             try{                 Ajax.HttpRequestObj = new ActiveXObject(MSXML[n]);                 Ajax.HttpRequestObj.setRequestHeader('Content-Type', 'text/html; charset=gb2312');                 break;             }             catch(e){}         }  }     if(!Ajax.HttpRequestObj){         alert("不能创建XMLHttpRequest对象实例")         return false;  }  Ajax.HttpRequestObj.onreadystatechange = function(){_AjaxResponse()};  Ajax.HttpRequestObj.open("get",url,false);  Ajax.HttpRequestObj.send(null);  //HttpRequestObj.open("get",url,false);  //HttpRequestObj.send(null);  //if(HttpRequestObj.status==200){  //  return HttpRequestObj.responseText;  // } } function _AjaxResponse(){  if(Ajax.HttpRequestObj.readyState == 4){      if(Ajax.HttpRequestObj.status == 200)      {        // bb(Ajax.HttpRequestObj.responseText)      alert(Ajax.HttpRequestObj.responseText)      // document.getElementById("maincontent").innerHTML=HttpRequestObj.responseText;      }      else      {          //document.getElementById("maincontent").innerHTML="远端数据失败,请重新操作。";      }  }  }

//Ajax.constructor.prototype.AjaxRequest=_AjaxRequest; Ajax.AjaxRequest=_AjaxRequest;

d.也可以再包装下 -------------------------------------- function CreateAjax(){return Ajax}

=======================================================

2.类方式,构造式

function CreateAjax() {  this.xmlHTTP=false;  this.request=function(url, method, data, asy, cb){   this.createXMLHTTP();   if(this.xmlHTTP)   {    var obj=this;    this.xmlHTTP.onreadystatechange = function(){obj.response(cb)};    this.xmlHTTP.open(method,url,asy);     this.xmlHTTP.setRequestHeader("If-Modified-Since","0");       this.xmlHTTP.send(data);   }   else   {    alert("不能创建XMLHttpRequest对象实例")   }  };

 this.createXMLHTTP=function(){   if(window.ActiveXObject)   {    var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];    for(var n = 0; n < MSXML.length; n ++)    {     try     {      this.xmlHTTP = new ActiveXObject(MSXML[n]);      this.xmlHTTP.setRequestHeader('Content-Type', 'text/html; charset=gb2312');      break;     }     catch (e){}    }   }   else if(window.XMLHttpRequest)   {    this.xmlHTTP = new XMLHttpRequest();    if(this.xmlHTTP.overrideMimeType)    {     this.xmlHTTP.overrideMimeType("text/xml");    }   }  };

 this.response=function(cb){   if(this.xmlHTTP.readyState == 4)   {    if(this.xmlHTTP.status == 200)    {       cb(this.xmlHTTP.responseText)

   }    else    {     cb("远端数据失败,请重新操作。")    }   }  }; }

 

=============================

4.类prototype原型式

function CreateAjax() {  this.xmlHTTP=false;  this.request=function(url, method, data, asy, cb){   this.createXMLHTTP();   if(this.xmlHTTP)   {    var thisObj=this;    this.xmlHTTP.onreadystatechange = function(){thisObj.response(cb)};    this.xmlHTTP.open(method,url,asy);     this.xmlHTTP.setRequestHeader("If-Modified-Since","0");       this.xmlHTTP.send(data);   }   else   {    alert("不能创建XMLHttpRequest对象实例")   }  };

 this.createXMLHTTP=function(){   if(window.ActiveXObject)   {    var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];    for(var n = 0; n < MSXML.length; n ++)    {     try     {      this.xmlHTTP = new ActiveXObject(MSXML[n]);      this.xmlHTTP.setRequestHeader('Content-Type', 'text/html; charset=gb2312');      break;     }     catch (e){}    }   }   else if(window.XMLHttpRequest)   {    this.xmlHTTP = new XMLHttpRequest();    if(this.xmlHTTP.overrideMimeType)    {     this.xmlHTTP.overrideMimeType("text/xml");    }   }  }; };

CreateAjax.prototype.response=function(cb){  if(this.xmlHTTP.readyState == 4)  {   if(this.xmlHTTP.status == 200)   {      cb(this.xmlHTTP.responseText)

  }   else   {    cb("远端数据失败,请重新操作。")   }  } };

================================

我的原始js如下:

var HttpRequestObj=false; function AjaxRequest(url){  if(window.XMLHttpRequest){      HttpRequestObj = new XMLHttpRequest();      if(HttpRequestObj.overrideMimeType){          HttpRequestObj.overrideMimeType("text/xml");      }  }  else if(window.ActiveXObject){         var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];         for(var n = 0; n < MSXML.length; n ++)         {             try{                 HttpRequestObj = new ActiveXObject(MSXML[n]);                 HttpRequestObj.setRequestHeader('Content-Type', 'text/html; charset=gb2312');                 break;             }             catch(e){}         }  }     if(!HttpRequestObj){         alert("不能创建XMLHttpRequest对象实例")         return false;  }  HttpRequestObj.onreadystatechange = AjaxResponse;  HttpRequestObj.open("get",url,true);  HttpRequestObj.send(null); } function AjaxResponse(){  if(HttpRequestObj.readyState == 4){      if(HttpRequestObj.status == 200)      {          document.getElementById("maincontent").innerHTML=HttpRequestObj.responseText;      }      else      {          document.getElementById("maincontent").innerHTML="远端数据失败,请重新操作。";      }  }  }

==========================

<script> var _xmlHTTP=false; function _request(url, method, data, asy, cb){  _createXMLHTTP()  if(_xmlHTTP)  {   _xmlHTTP.onreadystatechange = function(){_response(cb)};   _xmlHTTP.open(method,url,asy);    _xmlHTTP.setRequestHeader("If-Modified-Since","0");      _xmlHTTP.send(data);  }  else  {   alert("不能创建XMLHttpRequest对象实例")  } } function _createXMLHTTP() {  if(window.ActiveXObject)  {   var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];   for(var n = 0; n < MSXML.length; n ++)   {    try    {     _xmlHTTP = new ActiveXObject(MSXML[n]);     _xmlHTTP.setRequestHeader('Content-Type', 'text/html; charset=gb2312');     break;    }    catch (e){}   }  }  else if(window.XMLHttpRequest)  {   _xmlHTTP = new XMLHttpRequest();   if(_xmlHTTP.overrideMimeType)   {    _xmlHTTP.overrideMimeType("text/xml");   }  } } function _response(cb){  if(_xmlHTTP.readyState == 4){      if(_xmlHTTP.status == 200)      {         cb(_xmlHTTP.responseText)

     }      else      {          cb("远端数据失败,请重新操作。")      }  }  }

function searchHotel(responseText) {  alert(responseText)  }

var HotelAjax = {   xmlHTTP: _xmlHTTP,   get:function(url){_request(url, "get", null, true, function(responseText){alert(responseText)})} };

function AjaxResponse(url) {  function hotel(responseText)  {   alert(responseText);  };  _request(url, "get", null, true, hotel) }

AjaxResponse("http://www.hao123.com")

</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值