打印

[Ajax] 我写的一个AJAX通用类:AJAXRequest

以前写的一个类,这两天给更新了一下~
类名: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的内容
复制内容到剪贴板
代码:
function test1() {
    var ajax=new AJAXRequest;
    ajax.get(
        "test.asp",
        function(obj) { document.getElementById("test1").value=obj.responseText; }
    );
}
2. 使用post方法发送指定表单
复制内容到剪贴板
代码:
function test2() {
    var ajax=new AJAXRequest;
    ajax.post(
        document.getElementById("test2c"),
        function(obj) { document.getElementById("test2r").innerHTML=obj.responseText; }
    );
}
[url=http://www.xujiwei.cn/blog/?id=649]下载AJAXRequest v0.3


[ 本帖最后由 HotHeart 于 2006-12-19 23:00 编辑 ]
本帖最近评分记录
  • cnbruce 威望 +3 原创内容 2006-12-19 10:50
Simple,Natural,Actual
HotHear's BLOG
Ding
http://www.qlili.com 个人站帮点啊
好东西,谢谢分享

TOP

认证您的手机,获得手机认证图标, 更多手机认证的好处
好东东,不过,目前没用到
不错,先收下,谢谢!

TOP

不会用啊

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

TOP

http://www.xujiwei.cn/works/ajaxrequest/
这里有一些例子可以参考一下
Simple,Natural,Actual
HotHear's BLOG

TOP

用这个类可以做loading的效果吗??
我的意思是在ajax请求没完成前有个正在加载的提示。

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

TOP

你可以在请求发出之前显示出loading,然后在回调函数中隐藏loading就行了
Simple,Natural,Actual
HotHear's BLOG

TOP

我用obj.responseXML咋不行呢,是不是不能返回xml呀??

TOP

可以的,你直接在游览器里输入网址看看返回的结果是否正确,或者用Firefox+Firebug来调试一下
Simple,Natural,Actual
HotHear's BLOG

TOP

谢谢你的解答,不好意思,是我搞错了。

TOP

tks !

TOP

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);
}

TOP

如果是另外写的回调函数的话,只写函数名就行了,作为一个变量传递
var ajax=new AJAXRequest;
ajax.post(
       //要发送的表单对象
       document.getElementById("test3c"),
       //回调函数
       callBack
);
Simple,Natural,Actual
HotHear's BLOG

TOP

原来如此,谢了。

TOP

谢谢分享,好东西!虽然偶还没学AJAX,但学过Java ,以后写AJAX的时候借签一下!

TOP

请问有没有取消方法?
ajax.abort()?

TOP

.net有好多ajax控件.........使用更加简单!

TOP

但是对于一些ide不强的来说这些东西很有用。微软件也就能靠一下自己强大的ide来占点市场吧。

TOP

楼主,怎么取消请求?xmlhttp.abort()?

TOP

暂时还没有取消请求的方法呃,等下一个版本加上去吧,你可以在http://www.xujiwei.cn/works/ajaxrequest/最新版本的下载,不过目前还是0.4的。
我写这个类并不是拿去跟那些已经成形的框架拼的,只是一个轻量级的开发框架罢了,主要用来减少代码的编写(其实就是偷懒 )
Simple,Natural,Actual
HotHear's BLOG

TOP

恩,我一般也不喜欢用成熟的,太大。有些功能用不到。

TOP

我写这个类的时候基本上是平时要用到什么功能然后就加进去了,相对而言可能针对性比较强一点吧。
Simple,Natural,Actual
HotHear's BLOG

TOP

还是没加abort(),期待中。

TOP

0.5加入了超时设置,至于abort(),我还没想到怎么实现,原来是想加入请求队列,然后添加一个cancel方法,cancel一次从队列中取走一个未完成的,不过后来加了超时就忘了这个事情,就没加上了。
v0.5:http://www.xujiwei.cn/works/ajaxrequest/
Simple,Natural,Actual
HotHear's BLOG

TOP

恩,不错。谢谢。

TOP

好东西,留名收藏。

TOP

看样子挺简单的,我一直就想找一个应用起来简单一些的。
真晕!7年没用的ID,现在又复活啦!哈哈

TOP

好东西,要顶下。

TOP