本文主要是介绍具有xhr对象管理功能的Ajax简易封装(Majax),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
内部由一个数组缓存工作中的xhr对象,类似于“池”,当一个请求发生时,由池中首个空闲的xhr对象执行相关操作,当请求处理完毕后,对象被回收。这在网络速度无法保证、服务器端响应较慢,而Ajax采用异步方式时很有用。外部可以把一个Majax实例当作具有自动缓冲机制并持久有效的异步通讯对象看待。
使用接口简单并且灵活,回调函数接口也十分友好。详细内容可参看源码中的注释,希望大家喜欢。
用法:
[code]
<script language="javascript" src="majax.js"></script>
<script language="javascript">
function callback(req, id) {
// 直接使用
document.getElementById(id).innerHTML = req.responseText;
}
var _mObj = new Majax();
</script>
<div id="someid"></div>
<div onClick="_mObj.get('/yourscript.php?name=xxx', callback, 'someid')">GET方式</div>
<div onClick="_mObj.post('/yourscript.php', 'name=xxx', callback, 'someid')">POST方式</div>
[/code]
提示:回调函数中的第二个参数可以传递任意类型的数据,所以可以在异步设计的时候用于协调一些状态。使用中如果发现Bug,欢迎在此留言或Email:tubz@21cn.com
接口示例(假如已 var _mObj = new Majax();):
[code]
//-- 普通接口 -----------------------------------------------------------------
// GET方式请求。
// (URL, 回调函数, 传递给回调函数的附加数据, 是否异步)
_mObj.get(url, callback, fd, asyn)
// POST方式请求,Post-data仅为文本。
// (URL, POST数据, 回调函数, 传递给回调函数的附加数据, 是否异步)
_mObj.post(url, data, callback, fd, asyn)
//-- 低阶接口 -----------------------------------------------------------------
// 复位/设置请求。
// (URL, [GET|POST]方法, 是否异步)
_mObj.reset(url, method, asyn)
// 设置请求头信息。
_mObj.header(name, value)
// 发送请求(若reset时为GET,data为null)。
// (发送数据, 回调函数, 传递给回调函数的附加数据)
_mObj.send(data, callback, fd)
// 设置出错处理函数
// func(req, callback)
_mObj.e_handler(func)
[/code]
压缩包内文件说明:
majax.js 用jsmin压缩过的纯代码,实际引用文件;
majax_.js 书写时的源代码,含注释;
test.html/servdt.php 测试用文件。
这篇关于具有xhr对象管理功能的Ajax简易封装(Majax)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!