CNET中国旗舰网站

ZDNet China | CNET科技资讯网 | 政府采购 | 行业网站联盟





 
标题: [转贴] 看到一个Ajax类,但不太明白(50分求答)
mz89757053
版主
Rank: 7Rank: 7Rank: 7


UID 304999
精华 0
积分 6933
帖子 8295
威望 116
ZD币 1002 元
阅读权限 250
注册 2008-3-10
状态 离线
  楼主
发表于 2008-3-18 13:50  资料  个人空间  短消息  加为好友 
开发者在线

看到一个Ajax类,但不太明白(50分求答)

程序代码:   
  -----------------------------------------------------------   
  function   Ajax(url,recvT,stringS,resultF)   {   
          this.url   =   url;   
          this.stringS   =   stringS;   
          this.xmlHttp   =   this.createXMLHttpRequest();   
          if   (this.xmlHttp   ==   null)   {   
                  alert("erro");   
                  return;   
          }   
          var   objxml   =   this.xmlHttp;   
          objxml.onreadystatechange   =   function   (){Ajax.handleStateChange(objxml,recvT,resultF)};   
  }   
   
  Ajax.prototype.createXMLHttpRequest   =   function()   {   
          try   {   return   new   ActiveXObject("Msxml2.XMLHTTP");         }   catch(e)   {}   
          try   {   return   new   ActiveXObject("Microsoft.XMLHTTP");   }   catch(e)   {}   
          try   {   return   new   XMLHttpRequest();                                       }   catch(e)   {}   
          return   null;   
  }   
   
  Ajax.prototype.createQueryString   =   function   ()   {   
          var   queryString   =   this.stringS;   
          return   queryString;   
  }   
   
  Ajax.prototype.get   =   function   ()   {   
          url   =   this.url;   
          var   queryString   =   url+"?timeStamp="   +   new   Date().getTime()   +   "&"   +   this.createQueryString();   
          this.xmlHttp.open("GET",queryString,true);   
          this.xmlHttp.send(null);   
  }   
   
  Ajax.prototype.post   =   function()   {   
          url   =   this.url;   
          var   url   =   url   +   "?timeStamp="   +   new   Date().getTime();   
          var   queryString   =   this.createQueryString();   
          this.xmlHttp.open("POST",url,true);   
          this.xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");   
          this.xmlHttp.send(queryString);   
  }   
            
  Ajax.handleStateChange   =   function   (xmlHttp,recvT,resultF)   {   
          if   (xmlHttp.readyState   ==   4)   {   
                  if   (xmlHttp.status   ==   200)   {   
                  resultF(recvT?xmlHttp.responseXML:xmlHttp.responseText);   
                  }   else   {   
                  alert("您所请求的页面有异常。");   
                  }   
          }   
  }   
   
  使用方法   
  var   classajax   =   new   Ajax(url,recvT,stringS,resultF);   
  classajax.post();//post方式发送数据   
  classajax.get();//get方式发送数据   
  url发送地址   recvT   接受数据类型   0为xml   1为text   resultF   返回结果处理函数   
   
  例   
  var   ajax1   =   new   Ajax("1.asp",0,"id="+id,bacal);   
  ajax1.post();   
  function   bacal(rexm){   
  //返回数据处理函数;   
  }   
  -----------------------------------------------------------   
   
  其中的这句代码resultF(recvT?xmlHttp.responseXML:xmlHttp.responseText);   
  看不明白,有那位大哥大姐给解释解释?   
  当   recvT   为0   时,返回的是个对象,我不知道该如何使用,或者该对象有什么属性?   
  这句话的中的   ?   和   :   在这里是什么格式,什么作用?




顶部
 



当前时区 GMT+8, 现在时间是 2009-7-4 23:16

  Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
Processed in 0.060676 second(s), 3/3 queries

清除 Cookies - 联系我们 - ZDNetChina中文社区 - 无图版