设为首页收藏本站

数码鹭岛论坛

 找回密码
 注-册

QQ登录

只需一步,快速开始

搜索
查看: 26458|回复: 0
打印 上一主题 下一主题

一个简单实用的Ajax通用类

[复制链接]
跳转到指定楼层
1#
发表于 2006-7-7 16:03:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
转自: http://bbs.javascript.com.cn/read.php?tid=2393

今天写了一个Ajax的通用类,完全是基于目前我所应用到的ajax范畴而做的,代码不长就100来行

关于这个类的主要功能如下:

1.兼容各种浏览器的高低版本

2.解决IE浏览器的缓存问题

3.建立了一个XMLHttp对象回收容器,当有空闲的对象的时候就调用,否则就重新创建一个,不会造成资源浪费

4.建立了一个XMLHttp对象通道,如果指定了对象的通道名字,那么当第二次调用该通道的对象时,一旦该通道仍然处于请求状态,函数将停止运行


对于这个类的使用十分的简单,示例如下:


  1. var url = 'http://www.applelife.cn';
  2. var data = '';
  3. var callback = function back(obj){ alert(obj.responseText); }
  4. Request.reSend(url,data,callback);
复制代码


上面的前2个参数是必须的,其他的可选

url 代表发送请求的页面地址

data 代表发送的内容,如果为""则采用GET方式,否则为POST

callback 是回调函数,它的参数就一个XMLHttp对象。如果你的后台页面生成的是XML格式,就采用obj.responseXML;如果生成的是字符串,就采用obj.responseText

介绍下第四个参数chunnel

当一个页面的某个版块需要频繁的发送XMLHttp请求的话,如果上次发送的请求还没完成,下次请求又使用另外一个XMLHttp对象发送的话,这样就造成的XMLHttp请求的重叠,对于网络资源是比较大的消耗;或者你想这个版块的XMLHttp请求按照顺序的一个个发送;

这时chunnel就起到作用了,设定通道的名字,一旦上次的请求还没完成,那么这次reSend函数将停止退出,示例如下:


  1. var url = 'http://www.applelife.cn';
  2. var data = '';
  3. var callback = function back(obj){ alert(obj.responseText); }
  4. var chunnel = 'apple';
  5. var timer = setInterval( 'Request.reSend(url,data,callback,chunnel)', 1000);
复制代码


目前的功能不太多,以后有时间会逐渐增加进一步完善,如果您发现BUG欢迎指导.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注-册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 注-册

本版积分规则

小黑屋|手机版|Archiver|数码鹭岛 ( 闽ICP备20006246号 )  

counter

GMT+8, 2025-12-4 00:16 , Processed in 0.080739 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表