也写一个Ajax.Request类附代码

yh一起绝尘

yh一起绝尘

2016-02-19 12:28

下面图老师小编要向大家介绍下也写一个Ajax.Request类附代码,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!
目的:因为blog程序里的某些模块需要用到ajax,直接使用prototype.js体积比较大(40多k),而且仅仅用到其中的ajax功能,因此为了减轻下载的负担,又不能改动已经在prototype.js框架下写好的代码,只能是按照prototype的风格,自己写一个ajax类,达到零成本移植框架。

新的ajax类如下:

var Ajax = {xmlhttp:function(){
try{
return new ActiveXObject('Msxml2.XMLHTTP');
}catch(e){
try{
return new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
return new XMLHttpRequest();
}

}
};

Ajax.Request = function(){
if (arguments.length2) return;
var _p = {asynchronous:true,method:"GET",parameters:""}; //default option
for (var key in arguments[1]){ // custom option overwrite default option
_p[key] = arguments[1][key]; 
}
var _x = Ajax.xmlhttp(); //xml obj
var _url = arguments[0]; //str
if(_p["parameters"].length0) _p["parameters"] += '&_=';
if(_p["method"].toUpperCase()=="GET")_url += (_url.match(/?/) ? '&' : '?') + _p["parameters"];
_x.open(_p["method"],_url,_p["asynchronous"]);
_x.onreadystatechange = function(){
if (_x.readyState==4){
if(_x.status==200){
_p["onComplete"]?_p["onComplete"](_x):"";
}else{
_p["onError"]?_p["onError"](_x):"";
}
}
}
if(_p["method"].toUpperCase()=="POST")_x.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
_x.send(_p["method"].toUpperCase()=="POST" ? _p["parameters"] : null);
};


这个类保存成js文件,体积还不到1k,足够小了。哈哈。
调用方法:

var myAjax = new Ajax.Request(
"http://localhost/abc.asp",
{
method:"post",
parameters:"demo=123456789abc",
onComplete:function(xmlhttp){
alert(xmlhttp.responseText)
}
}
);

调用的风格完全与原来相同!

目前这个新类只有两个回调函数:onComplete 与 onError,Ajax类也只有Request一个方法,毕竟现在blog程序还不需要这么多应用嘛。parameters 属性有个默认值:{asynchronous:true,method:"GET",parameters:""},可以从中知道,如果调用时不传入asynchronous、method、parameters三个参数,那么类将使用默认值。
展开更多 50%)
分享

猜你喜欢

也写一个Ajax.Request类附代码

Web开发
也写一个Ajax.Request类附代码

一个AJAX类代码

Web开发
一个AJAX类代码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

一个Ajax类

Web开发
一个Ajax类

一个封装的Ajax类

Web开发
一个封装的Ajax类

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一个效果写的HashTable代码

Web开发
一个效果写的HashTable代码

一个简单的AJAX请求类

Web开发
一个简单的AJAX请求类

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

谈谈VB的数据库编程方式

谈谈VB的数据库编程方式

送给搞采集的兄弟一个sql语句

送给搞采集的兄弟一个sql语句
下拉加载更多内容 ↓