具有xhr对象管理功能的Ajax简易封装(Majax)

2024-03-25 22:58

本文主要是介绍具有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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/846514

相关文章

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分