实现自己的$.ajax
在很长的一段时间里,遇到要ajax数据时,都只会拖拖jQuery的$.ajax
可是要用$.ajax必须引用jQuery库。
虽然jQuery库不是很大,但是我们可能有时候不想引用。
闲着无聊就做了个$.ajax,这样在要ajax数据时就可以简单的应用了。
废话太多了。这里省略无数火星语#$%^&*@...
上代码吧:
window.$.ajax = function () {
var args = arguments[0];
if (typeof args == "object") {
var request = null;
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
} else if (window.ActiveXObject) {
request = new ActiveXObject('Microsoft.XMLHTTP');
}
var stateChange = function () {
switch (request.readyState) {
case 1: //载入中
if (args.loading) args.loading();
break;
case 2: //载入完成
if (args.achieve) args.achieve();
break;
case 3: //交互
if (args.interact) args.interact();
break;
case 4: //完成 200 is OK, 404 is not found, so on
if (request.status == 200) {
//request.responseText or request.responseXML
if (args.success) args.success(request.responseText);
} else {
//request.statusText include error
if (args.error) args.error();
}
break;
}
}
if (request && args.url) {
var type = args.type ? args.type : "get";
var async = args.async ? args.async : true;
var data = args.type ? (args.type == "get" ? null : (args.data ? args.data : null)) : null;
var url = args.url;
request.onreadystatechange = stateChange;
request.open(type, url, async);
request.send(data);
}
}
}
然后我们页面就可以这么使用了:
$.ajax({
url: "Handler1.ashx?t=" + Math.random(),
loading: function () {
log.write('载入中1')
},
achieve: function () {
log.write('载入完成1')
},
interact: function () {
log.write('交互1')
},
success: function (txt) {
log.write(txt)
},
async: false
});
有木有感到很熟悉。
好吧就这样了。

浙公网安备 33010602011771号