日期:2014-05-16  浏览次数:20338 次

工厂模式在js中的应用

1.用ajax技术进行异步请求是现在web开发中常见的一个任务。简单的工厂非常适合这种场合,根据浏览器能力不同生成一个

?

xmlHttpRequest或者ActionXObject


var simpleHandler=function(){};

simpleHandle.prototype={

       request:function(model,url,callback,postValue){

         //相当于调用一个工厂类来获取xhr

          var xhr=this.createXhrObject();

          xhr.onreadystatechange=function(){

              if(xhr.readyState!=4)return;

              (xhr.status==200)?callback.success():callback.failure();

          }

           xhr.open(method,url,true);

},

createXhrObject:function(){
//相当于定义了产品 生成类
   var methods=[

          function(){return new XMLHttpRequest();},

          function(){return new ActiveObject('Msxml2.XMLHTTP');},

          function(){ return new ActiveObject('Micosoft.XMLHTTP')}

   ];
//相当于根据不同浏览器 选择不同的产品

 for(var i=0,len=methods.length;i<len;i++){

        try{

                  methods[i]();
    
                }catch(e){

                     continue;       

 }
//将选择出来的产品赋值给createXhrObject 是为了免再次进行这种计算和判断
this.createXhrObject=methods[i];

return methods[i];

}

}


}
?