千家信息网

如何写一个Ajax.Request类

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下如何写一个Ajax.Request类,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!目的:因为blog程序
千家信息网最后更新 2026年11月03日如何写一个Ajax.Request类

小编给大家分享一下如何写一个Ajax.Request类,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

目的:因为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.length<2) 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"].length>0) _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三个参数,那么类将使用默认值。

以上是"如何写一个Ajax.Request类"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

篇文章 体积 内容 只有 方法 框架 程序 风格 相同 三个 不怎么 两个 从中 代码 函数 功能 参数 大部分 属性 成本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技和互联网公司 智能科技公司是互联网公司吗 互联网与未来科技 万达互联网科技 火传媒上海互联网科技 撒么互联网科技公司 互联网金融和金融科技 消费医药和互联网科技 电子科技大学互联网创业大赛 互联网科技的全部知识 互联网在线教育科技创业 互联网金融科技名词解释 雨阳互联网卡科技有限公司 互联网科技数字货币 宇信科技在杭州互联网排第几 艺电能源互联网科技有限公司招聘 科技互联网专业务虚会材料 伍佰万互联网科技是干嘛的 前海云享互联网科技 互联网科技快速发展优美句子 互联网 科技 互联网医疗科技 一五八零互联网科技 互联网科技大奖都有哪些公司 中国互联网公司排名锤子科技 阿里互联网科技企业 保险科技服务互联网营销体系 深圳无忧互联网科技 广东猫王互联网科技有限公司电话 互联网大会出现的黑科技
0