只贴出了get部分的代码,post的部分请试着自己完成
var BB = {};
BB.AJAX = function(){
var oAJAX = {};
if (typeof XMLHttpRequest == 'undefined' && window.ActiveXObject) {
var aSignatures = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
var nSignaturesLength = arrSignatures.length;
for (var i = 0; i < nSignaturesLength; i++) {
try {
oAJAX = new ActiveXObject(aSignatures[i]);
}
catch (oError) {
//ignore
}
}
} else if (XMLHttpRequest) {
oAJAX = new XMLHttpRequest();
} else {
//ajax on this system is not support
}
if (typeof oAJAX._initialized == 'undefined') {
oAJAX.get = function(getArguments){
if (getArguments.data) {
//对要传送的数据附加到url上
getArguments.url += url.indexOf('?') == -1 ? '?' : '&';
for (var i in getArguments.data) {
url += encodeURIComponent(i) + '=' + encodeURIComponent(getArguments.data[i]) + '&';
}
getArguments.url.length--;
}
this.open('get', getArguments.url, getArguments.sync || 0);
if (getArguments.callback) {
//绑定回调事件
this.onreadystatechange = function(){
if (this.readyState == 4) {
getArguments.callback();
}
}
}
this.send(null);
};
oAJAX.post = function(url, data, callback){
};
oAJAX._initialized = 1;
}
return oAJAX;
}();
调用方式如下:
BB.AJAX.get({
url: 'templates/' + oTemplates['action'] + '.js',
sync: 1,
callback: function(){
//console.log('templates is load');
}
});
PS:最近试着写点OOP的JS……嗯,其实JS也是可以很优雅的