请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 8423|回复: 31

[Ajax] 我写的一个AJAX通用类:AJAXRequest [复制链接]

HotHeart 楼主

徐徐

银牌会员

帖子
1231
体力
5102
威望
24
发表于 2006-12-18 21:52:41 |显示全部楼层
以前写的一个类,这两天给更新了一下~
类名:AJAXRequest
版本:0.3
日期:2006-12-18
介绍:AJAXRequest是一个方便AJAX开发的通用类,兼容Firefox、IE、Opera、Safari,可以方便地进行一些AJAX中需要的操作,从而简化开发步骤,减少重复代码编写量。
演示地址:http://www.xujiwei.cn/works/ajaxrequest/
更新:
1. 添加方法get
2. 添加方法post
3. 修改构造函数,无参数则使用默认值
4. 修改send函数
使用说明:
创建对象:
var ajax=new AJAXRequest(,[callback],[content],[method],[async]);
如果创建失败则返回false
属性:
url       - 请求URL,字符串,默认为空
callback  - 回调函数,即返回响应内容时调用的函数,默认为直接返回,回调函数有一个参数为XMLHttpRequest对象,即定义回调函数时要这样:function mycallback(xmlobj)
content   - 请求的内容,如果请求方法为POST需要设定此属性,默认为空字符串
method    - 请求方法,字符串,POST或者GET,默认为POST
async      - 是否异步,true为异步,false为同步,默认为true
方法:
function send([url],[callback],[content],[method],[async])
发送请求,可选参数列表为空就使用对象属性
function get([url],[callback])
使用GET方法请求一个URL,可选参数默认使用对象属性
function post(form_obj,[callback],[url],[method])
发送一个表单到指定URL,form_obj为指定表单对象,可选参数为空时使用对象属性
示例:
1. 使用get方法获取指定URL的内容
  1. function test1() {
  2.         var ajax=new AJAXRequest;
  3.         ajax.get(
  4.                 "test.asp",
  5.                 function(obj) { document.getElementById("test1").value=obj.responseText; }
  6.         );
  7. }
复制代码

2. 使用post方法发送指定表单
  1. function test2() {
  2.         var ajax=new AJAXRequest;
  3.         ajax.post(
  4.                 document.getElementById("test2c"),
  5.                 function(obj) { document.getElementById("test2r").innerHTML=obj.responseText; }
  6.         );
  7. }
复制代码

[url=http://www.xujiwei.cn/blog/?id=649]下载AJAXRequest v0.3


[ 本帖最后由 HotHeart 于 2006-12-19 23:00 编辑 ]
已有 1 人评分威望 收起 理由
cnbruce + 3 原创内容

总评分: 威望 + 3   查看全部评分

Simple,Natural,Actual
HotHear's BLOG
西部数码顶级域名注册商39元抢注!
skybot 

size

钻石会员 手机认证 

帖子
3236
体力
12466
威望
7
发表于 2006-12-19 13:00:37 |显示全部楼层
Ding
http://www.qlili.com 个人站帮点啊
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

脚本之家

银牌会员

帖子
202
体力
1006
威望
1
居住地
江苏省 徐州市
发表于 2006-12-23 14:00:25 |显示全部楼层
好东西,谢谢分享

使用道具 举报

帖子
43
体力
92
威望
0
发表于 2006-12-23 16:24:35 |显示全部楼层
好东东,不过,目前没用到

使用道具 举报

lbx972 
帖子
27
体力
193
威望
0
发表于 2006-12-26 20:39:34 |显示全部楼层
不错,先收下,谢谢!

使用道具 举报

372100 
帖子
14
体力
55
威望
0
发表于 2007-1-16 10:14:38 |显示全部楼层

不会用啊

可否写一个例子,我们跟着学习

使用道具 举报

HotHeart 楼主

徐徐

银牌会员

帖子
1231
体力
5102
威望
24
发表于 2007-1-16 18:31:50 |显示全部楼层
http://www.xujiwei.cn/works/ajaxrequest/
这里有一些例子可以参考一下
Simple,Natural,Actual
HotHear's BLOG

使用道具 举报

ljlyy 
帖子
116
体力
490
威望
1
居住地
广东省 广州市
发表于 2007-1-24 19:14:39 |显示全部楼层
用这个类可以做loading的效果吗??
我的意思是在ajax请求没完成前有个正在加载的提示。

[ 本帖最后由 ljlyy 于 2007-1-24 19:15 编辑 ]

使用道具 举报

HotHeart 楼主

徐徐

银牌会员

帖子
1231
体力
5102
威望
24
发表于 2007-1-25 02:06:20 |显示全部楼层
你可以在请求发出之前显示出loading,然后在回调函数中隐藏loading就行了
Simple,Natural,Actual
HotHear's BLOG

使用道具 举报

ljlyy 
帖子
116
体力
490
威望
1
居住地
广东省 广州市
发表于 2007-1-25 14:41:49 |显示全部楼层
我用obj.responseXML咋不行呢,是不是不能返回xml呀??

使用道具 举报

HotHeart 楼主

徐徐

银牌会员

帖子
1231
体力
5102
威望
24
发表于 2007-1-25 14:50:35 |显示全部楼层
可以的,你直接在游览器里输入网址看看返回的结果是否正确,或者用Firefox+Firebug来调试一下
Simple,Natural,Actual
HotHear's BLOG

使用道具 举报

ljlyy 
帖子
116
体力
490
威望
1
居住地
广东省 广州市
发表于 2007-1-25 14:57:02 |显示全部楼层
谢谢你的解答,不好意思,是我搞错了。

使用道具 举报

sooq 
帖子
16
体力
27
威望
0
发表于 2007-1-30 05:34:49 |显示全部楼层
tks !

使用道具 举报

ajaxer 
帖子
52
体力
113
威望
0
发表于 2007-2-11 09:00:57 |显示全部楼层
var ajax=new AJAXRequest;
ajax.post(
        //要发送的表单对象
        document.getElementById("test3c"),
        //回调函数
        function(obj) { document.getElementById("test3r").innerHTML=obj.responseText; }
);

为什么写成下面这样会出错?
var ajax=new AJAXRequest;
ajax.post(
        //要发送的表单对象
        document.getElementById("test3c"),
        //回调函数
        callBack(obj)
);
function callBack(obj){
alert(obj.responseText);
}

使用道具 举报

HotHeart 楼主

徐徐

银牌会员

帖子
1231
体力
5102
威望
24
发表于 2007-2-11 09:06:21 |显示全部楼层
如果是另外写的回调函数的话,只写函数名就行了,作为一个变量传递
var ajax=new AJAXRequest;
ajax.post(
       //要发送的表单对象
       document.getElementById("test3c"),
       //回调函数
       callBack
);
Simple,Natural,Actual
HotHear's BLOG

使用道具 举报

ajaxer 
帖子
52
体力
113
威望
0
发表于 2007-2-11 11:31:20 |显示全部楼层
原来如此,谢了。

使用道具 举报

fangcs 
帖子
23
体力
126
威望
0
发表于 2007-2-11 11:53:40 |显示全部楼层
谢谢分享,好东西!虽然偶还没学AJAX,但学过Java ,以后写AJAX的时候借签一下!

使用道具 举报

ajaxer 
帖子
52
体力
113
威望
0
发表于 2007-2-11 21:25:21 |显示全部楼层
请问有没有取消方法?
ajax.abort()?

使用道具 举报

SOSOS 
帖子
104
体力
143
威望
0
居住地
广东省 深圳市
发表于 2007-2-11 21:30:07 |显示全部楼层
.net有好多ajax控件.........使用更加简单!

使用道具 举报

ajaxer 
帖子
52
体力
113
威望
0
发表于 2007-2-11 21:31:54 |显示全部楼层
但是对于一些ide不强的来说这些东西很有用。微软件也就能靠一下自己强大的ide来占点市场吧。

使用道具 举报

ajaxer 
帖子
52
体力
113
威望
0
发表于 2007-2-13 11:47:04 |显示全部楼层
楼主,怎么取消请求?xmlhttp.abort()?

使用道具 举报

HotHeart 楼主

徐徐

银牌会员

帖子
1231
体力
5102
威望
24
发表于 2007-2-13 23:20:06 |显示全部楼层
暂时还没有取消请求的方法呃,等下一个版本加上去吧,你可以在http://www.xujiwei.cn/works/ajaxrequest/最新版本的下载,不过目前还是0.4的。
我写这个类并不是拿去跟那些已经成形的框架拼的,只是一个轻量级的开发框架罢了,主要用来减少代码的编写(其实就是偷懒 )
Simple,Natural,Actual
HotHear's BLOG

使用道具 举报

ajaxer 
帖子
52
体力
113
威望
0
发表于 2007-2-15 10:01:39 |显示全部楼层
恩,我一般也不喜欢用成熟的,太大。有些功能用不到。

使用道具 举报

HotHeart 楼主

徐徐

银牌会员

帖子
1231
体力
5102
威望
24
发表于 2007-2-16 08:42:31 |显示全部楼层
我写这个类的时候基本上是平时要用到什么功能然后就加进去了,相对而言可能针对性比较强一点吧。
Simple,Natural,Actual
HotHear's BLOG

使用道具 举报

ajaxer 
帖子
52
体力
113
威望
0
发表于 2007-2-28 17:30:22 |显示全部楼层
还是没加abort(),期待中。

使用道具 举报

HotHeart 楼主

徐徐

银牌会员

帖子
1231
体力
5102
威望
24
发表于 2007-2-28 20:52:07 |显示全部楼层
0.5加入了超时设置,至于abort(),我还没想到怎么实现,原来是想加入请求队列,然后添加一个cancel方法,cancel一次从队列中取走一个未完成的,不过后来加了超时就忘了这个事情,就没加上了。
v0.5:http://www.xujiwei.cn/works/ajaxrequest/
Simple,Natural,Actual
HotHear's BLOG

使用道具 举报

ajaxer 
帖子
52
体力
113
威望
0
发表于 2007-3-2 10:05:34 |显示全部楼层
恩,不错。谢谢。

使用道具 举报

pamde 
帖子
194
体力
520
威望
0
发表于 2007-6-19 13:28:56 |显示全部楼层
好东西,留名收藏。

使用道具 举报

帖子
130
体力
430
威望
0
发表于 2007-6-19 14:09:01 |显示全部楼层
看样子挺简单的,我一直就想找一个应用起来简单一些的。
真晕!7年没用的ID,现在又复活啦!哈哈

使用道具 举报

帖子
148
体力
338
威望
0
发表于 2007-7-31 09:12:27 |显示全部楼层
好东西,要顶下。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-13 10:15 , Processed in 0.172080 second(s), 11 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部