AJAXRequest

AJAXRequest类的构造函数

构造一个AJAXRequest类的实例,可以很方便的用new来实现:

程序代码:[ 复制代码到剪贴板 ]
  1. var ajax=new AJAXRequest();

在创建AJAXRequest类的实例的时候,也可以通过使用加上参数的构造函数初始化一起属性,比如编码,通用回调函数等。

程序代码:[ 复制代码到剪贴板 ]
  1. // 使用带参数的构造函数
  2. // 使用 {} 来创建一个匿名对象,包含初始化参数
  3. var ajax=new AJAXRequest({
  4.     // 设置默认请求地址
  5.     url: "test.asp",
  6.     // 设置默认请求方式
  7.     method: "GET",
  8.     // 设置默认正常响应时的回调函数
  9.     oncomplete: function(obj) { alert(obj.responseText; },
  10.     // 设置超时时间
  11.     timeout: 10000,
  12.     // 超时时提醒用户通信中超时,请用户重新操作
  13.     ontimeout: function(obj) { alert("很抱歉,由于网络问题,与服务器的通信超时,请重新操作。") },
  14.     // 设置数据编码为GB2312
  15.     charset: "GB2312"
  16. });
  17. 更多初始化参数可以参考AJAXRequest开发者手册external link

AJAXRequest类的方法

AJAXRequest封装了一系列的方法来完成AJAX应用程序中常用的操作。

在AJAXRequest类方法的定义中,如果参数以方括号[]括起来,说明此参数可选,在调用方法可以不指定此参数。注意,参数的省略是从后往前 的,即在调用方法时如果不指定参数,则最先省略的是最后一个参数,然后依次往前省略。在省略参数时,AJAXRequest类会使用类实例的全局属性,像 url、oncomplete等。

get([url],[callback])

get方法从客户端发判定个GET请求到服务端,并在服务端返回的时候调用回调函数callback进行处理。get方法带有两个参数,url指定请求发送到的地址,callback指定服务端返回时的回调函数。在一般情况下,get方法可以这样使用:

程序代码:[ 复制代码到剪贴板 ]
  1. function mycallback(xmlobj) {
  2.     // 处理代码
  3. }
  4. var ajax=new AJAXRequest();
  5. ajax.get(
  6.     // 请求的地址
  7.     "do.asp",
  8.     // 回调函数,注意,是回调函数名,不要带括号
  9.     mycallback
  10. );

或者已经指定了设置了ajax的url及oncomplete属性,可以直接这样调用:

程序代码:[ 复制代码到剪贴板 ]
  1. var ajax=new AJAXRequest();
  2. // 设置url属性
  3. ajax.url="do.asp";
  4. // 设置oncomplete属性
  5. ajax.oncomplete=mycallback;
  6. // 使用默认值调用get方法
  7. ajax.get();
  8. function mycallback(xmlobj) {
  9.     // 处理代码
  10. }

因此,可以通过设置AJAXRequest类实例的url及oncomplete属性来将同一类操作放到一个AJAXRequest类实例中,在之后的使用中就可以直接使用ajax.get()而不必加上参数。

post([url],[content],[callback])

post方法在客户端使用POST方式发送一个请求到服务端,一般在发送大量数据时使用。一般使用方法如下:

程序代码:[ 复制代码到剪贴板 ]
  1. var ajax=new AJAXRequest();
  2. ajax.post(
  3.     // 将数据发送到getdata.asp
  4.     "getdata.asp",
  5.     // 发送的数据为“要发送的数据”
  6.     "要发送的数据",
  7.     // 回调函数,用消息框显示服务端的返回内容
  8.     function(obj) { alert(obj.responseText); }
  9. );

postf(form_obj,[callback],[url],[method])

postf方法使用POST方式发送指定的表单到指定的地址,其中表单可以以form_obj直接指定,或者使用字符串指定要发送的表单的ID值。 在默认情况下,postf方法的请求地址和方法分别使用表单的action和method属性,但参数中的url和method优先级大于表单的属性,因 此,如果想将表单用不同的方式发送到另外的地址,可以通过指定url和method参数来实现。例如,postf方法一般可以这样使用:

HTML部分:

程序代码:[ 复制代码到剪贴板 ]
  1. <form id="loginform" name="loginform" action="login.asp" method="post">
  2.     用户:<input type="text" name="username" size="20" /><br />
  3.     密码:<input type="password" name="password" size="20" /><br />
  4.     <input type="button" onclick="AjaxLogin();" value="登录" />
  5. </form>

JavaScript部分:

程序代码:[ 复制代码到剪贴板 ]
  1. var ajax=new AJAXRequest();
  2. function AjaxLogin() {
  3.     ajax.postf(
  4.         // 使用指定表单对象的方式来发送表单
  5.         document.getElementById("loginform"),
  6.         // 回调函数,显示服务端返回的信息
  7.         function(obj) { alert(obj.responseText); }
  8.     );
  9. }

或者通过指定表单ID的方式来发送表单:

程序代码:[ 复制代码到剪贴板 ]
  1. var ajax=new AJAXRequest();
  2. function AjaxLogin() {
  3.     ajax.postf(
  4.         // 使用指定表单ID的方式来发送表单
  5.         "loginform",
  6.         // 回调函数,显示服务端返回的信息
  7.         function(obj) { alert(obj.responseText); }
  8.     );
  9. }

如果要将数据发送到另外的页面,可以指定url和method参数:

程序代码:[ 复制代码到剪贴板 ]
  1. var ajax=new AJAXRequest();
  2. function AjaxLogin() {
  3.     ajax.postf(
  4.         // 使用指定表单ID的方式来发送表单
  5.         "loginform",
  6.         // 回调函数,显示服务端返回的信息
  7.         function(obj) { alert(obj.responseText); },
  8.         // url参数,数据发送到anotherlogin.asp
  9.         "anotherlogin.asp",
  10.         // method参数,使用GET方式发送请求
  11.         "GET"
  12.     );
  13. }

update([update_obj],[url],[update_interval],[update_times])

update方法使用GET方式发送请求到服务端,并将服务端返回的内容更新到指定的对象,指定的对象可以为INPUT或TEXTAREA,也可以 为其他带innerHTML属性的元素。并且可以指定update_interval和update_times来实现定时定量更新。在不指定 update_times参数时,update方法将以update_interval参数指定的时间间隔不间断更新指定对象,直至用户取消更新。

update_obj可以是指定的对象,也可以是指定对象的ID。

在指定update_interval参数但不指定update_times参数时,update方法将返回一个定时器对象,可以通过 clearInterval(返回值)的方式来取消更新。如果update_interval和update_times参数都不指定,update方法 将只更新一次。例如:

HTML部分:

程序代码:[ 复制代码到剪贴板 ]
  1. <div id="updateobj">
  2. </div>

JavaScript部分:

程序代码:[ 复制代码到剪贴板 ]
  1. var ajax=new AJAXRequest();
  2. ajax.update(
  3.     // 更新
  4.     "updateobj",
  5.     // 更新内容来自update.asp
  6.     "update.asp"
  7. );

或者每隔1秒不间断更新:

程序代码:[ 复制代码到剪贴板 ]
  1. var ajax=new AJAXRequest();
  2. ajax.update(
  3.     // 更新
  4.     "updateobj",
  5.     // 更新内容来自update.asp
  6.     "update.asp"
  7.     // 更新间隔,毫秒为单位,1000为1秒
  8.     1000
  9. );

或者间隔1秒,更新3次:

程序代码:[ 复制代码到剪贴板 ]
  1. var ajax=new AJAXRequest();
  2. ajax.update(
  3.     // 更新
  4.     "updateobj",
  5.     // 更新内容来自update.asp
  6.     "update.asp"
  7.     // 更新间隔,毫秒为单位,1000为1秒
  8.     1000,
  9.     // 更新次数
  10.     3
  11. );

小结

这篇教程中,我们了解了AJAXRequest类的方法以及具体使用方法。

posted on 2009-11-23 21:44  14的路  阅读(8408)  评论(1编辑  收藏  举报

导航

友情链接:源码下载