日期:2014-05-16 浏览次数:20451 次
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];
}
}
}
?