原生js实现AJAX(一)
要实现AJAX首先需要新建XHR对象。
使用工厂模式生成XHR对象:
var u=window.u||{};
u.createXHR=function() {
var methods=[
function() {return new XMLHttpRequest();},
function() {return new ActiveXObject(Msxml2.XMLHTTP);},
function() {return new ActiveXObject(Microsoft.XMLHTTP);}
];
for(var i=0;i<3;i++) {
try {
methods[i]();
} catch(e) {
continue;
}
this.createXHR=methods[i];
return methods[i]();
}
throw new Error("没有找到XHR对象");
}
这段代码会在第一次运行时确定浏览器支持的XHR对象,从而返回一种无须进行兼容性判断的方法,在大量使用AJAX请求的程序中可以加快程序运行的速度。只需使用u.createXHR()即可新建XHR对象。
在这段代码中使用了工厂模式,它的优点是动态执行,并且可以节省设置开销。