本章节介绍介绍一下ajax多性加载的用法,当然它是具有一定优势的。

在js中有些内存只需执行一遍即可,如浏览器类型检测是最常用的一个功能,因为我们使用Ajax的时候需要检测浏览器的内置的XHR。我们可以在第一次检测的时候记录下类型,往后在使用Ajax的时候就不需要再去检测浏览器类型了。在js中就算只有一个if也总比没有if的语句效率要高。

代码实例:

实例一:

普通的ajax代码
   [ bootstrap ] 运行代码    下载代码
<script>
function ajax(){  
  if(typeof XMLHttpRequest != "undefined"){
    return new XMLHttpRequest();    
  }
  else if(typeof ActiveXObject != "undefined"){
    if(typeof arguments.callee.activeXString != "string"){
      var versions = ["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"];    
      for(var index=0,k=version.length;index<k;index++){
        try{
          new ActiveXObject(versions[index]); 
          arguments.callee.activeXString = versions[index];
          break;
        }
        catch(ex){
          throw ex;   
        }
      }
    }   
    return new ActiveXObject(arguments.callee.activeXString);
  }
  else{
    throw "No XHR object";  
  }
}
</script>
每次调用ajax()函数都要对浏览器内置的XHR检查,效率不高。

实例二:

惰性方式的代码
   [ bootstrap ] 运行代码    下载代码
<script>
function ajax(){
  if(typeof XMLHttpRequest != "undefined"){
    ajax = function(){
      return new XMLHttpRequest();    
    };
  }
  else if(typeof ActiveXObject != "undefined"){
    ajax = function(){
      if(typeof arguments.callee.activeXString != "string"){
        var versions = ["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"];    
        for(var index=0,k=version.length;index<k;index++){
          try{
            var xhr = new ActiveXObject(versions[index]);   
            arguments.callee.activeXString = versions[index];
            return xhr;
          }
          catch(ex){
            throw ex;   
          }
        }
      }   
      return new ActiveXObject(arguments.callee.activeXString);
    }
  }
  else{
    ajax = function(){
      throw "No XHR object";  
    }
  }
  return ajax();
}
</script>

代码描述:js ajax惰性加载。js ajax惰性加载源码实例



105 140



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册



×
×
51前端

注册

×
绑定手机

请绑定手机号,在继续操作

×
单次下载支付

应付金额:279

支付完成后,回到下载页面,在进行下载

官方QQ群
意见反馈
qq群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到