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]; } } }?