jQuery Ajax 全局调用封装实例代码详解


Posted in Javascript onJune 02, 2016

有一种情况:全站都要用异步方式来调用 数据,提交数据,那么你每次操作 都会要$.ajax({.....})

写重复的方法 和代码,冗余太大, 也浪费时间,虽说你有代码自动提示补全,但真的不优雅,身为前端极客,是不能允许的!

【嘿嘿!虽说我现在基本不用jquery了 ,不过异步概念 是永远要用的,就帮助下新人】

jQuery Ajax通用js封装

第一步:引入jQuery库

<script type="text/javascript" src="/js/jquery.min.js"></script>

第二步:开发Ajax封装类,已测试通过,可以直接调用,直接贴代码,讲解就省了

/*****************************************************************
jQuery Ajax封装通用类 (linjq) 
*****************************************************************/
$(function(){
/**
* ajax封装
* url 发送请求的地址
* data 发送到服务器的数据,数组存储,如:{"date": new Date().getTime(), "state": 1}
* async 默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。
* 注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
* type 请求方式("POST" 或 "GET"), 默认为 "GET"
* dataType 预期服务器返回的数据类型,常用的如:xml、html、json、text
* successfn 成功回调函数
* errorfn 失败回调函数
*/
jQuery.ax=function(url, data, async, type, dataType, successfn, errorfn) {
async = (async==null || async=="" || typeof(async)=="undefined")? "true" : async;
type = (type==null || type=="" || typeof(type)=="undefined")? "post" : type;
dataType = (dataType==null || dataType=="" || typeof(dataType)=="undefined")? "json" : dataType;
data = (data==null || data=="" || typeof(data)=="undefined")? {"date": new Date().getTime()} : data;
$.ajax({
type: type,
async: async,
data: data,
url: url,
dataType: dataType,
success: function(d){
successfn(d);
},
error: function(e){
errorfn(e);
}
});
};
/**
* ajax封装
* url 发送请求的地址
* data 发送到服务器的数据,数组存储,如:{"date": new Date().getTime(), "state": 1}
* successfn 成功回调函数
*/
jQuery.axpost=function(url, data, successfn) {
data = (data==null || data=="" || typeof(data)=="undefined")? {"date": new Date().getTime()} : data;
$.ajax({
type: "post",
data: data,
url: url,
dataType: "json",
success: function(d){
successfn(d);
}
});
};
/**
* ajax封装
* url 发送请求的地址
* data 发送到服务器的数据,数组存储,如:{"date": new Date().getTime(), "state": 1}
* dataType 预期服务器返回的数据类型,常用的如:xml、html、json、text
* successfn 成功回调函数
* errorfn 失败回调函数
*/
jQuery.axspost=function(url, data, successfn, errorfn) {
data = (data==null || data=="" || typeof(data)=="undefined")? {"date": new Date().getTime()} : data;
$.ajax({
type: "post",
data: data,
url: url,
dataType: "json",
success: function(d){
successfn(d);
},
error: function(e){
errorfn(e);
}
});
};
});

第三步:调用模拟

<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<title>jQuery Ajax封装通用类测试</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<jsp:include page="/view/common/js_taglib.jsp"></jsp:include>
<script type="text/javascript">
$(function(){
$.ax(
getRootPath()+"/test/ajax.html",
null,
null,
null,
null, 
function(data){
alert(data.code);
}, 
function(){
alert("出错了");
}
);
$.axpost(getRootPath()+"/test/ajax.html", null, function(data){
alert(data.data);
});
$.axspost(getRootPath()+"/test/ajax.html",
null, 
function(){
alert("成功了");
},
function(){
alert("出错了");
});
});
</script>
</head>
<body>
</body>
</html>

$.axpost(getRootPath()+"/test/ajax.html", null, function(data){
alert(data.data);
});

如上代码:只要填写 url,和要传输的 data 字段就行了,避免了重复工作和代码冗余。

以上内容是小编给大家介绍的jQuery Ajax 全局调用封装实例代码详解的相关内容,希望对大家有所帮助!

Javascript 相关文章推荐
WEB高性能开发之疯狂的HTML压缩
Jun 19 Javascript
下拉菜单点击实现连接跳转功能的js代码
May 19 Javascript
基于jquery animate操作css样式属性小结
Nov 27 Javascript
JavaScipt选取文档元素的方法(推荐)
Aug 05 Javascript
深入理解vue.js双向绑定的实现原理
Dec 05 Javascript
jQuery图片切换动画效果
Feb 28 Javascript
Bootstrap表格制作代码
Mar 17 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
Apr 21 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
Sep 05 Javascript
微信小程序文字显示换行问题
Jul 28 Javascript
浅谈Vue为什么不能检测数组变动
Oct 14 Javascript
js实现整体缩放页面适配移动端
Mar 31 Javascript
jQuery页面加载初始化的3种方法(推荐)
Jun 02 #Javascript
Jquery和JS获取ul中li标签的实现方法
Jun 02 #Javascript
Jquery获取第一个子元素简单实例
Jun 02 #Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
Jun 02 #Javascript
javascript三种代码注释方法
Jun 02 #Javascript
JavaScript对Json的增删改属性详解
Jun 02 #Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
Jun 02 #Javascript
You might like
GD输出汉字的函数的分析
2006/10/09 PHP
用PHP实现的四则运算表达式计算实现代码
2011/08/02 PHP
php ajax实现文件上传进度条
2016/03/29 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
js 控制图片大小核心讲解
2013/10/09 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
ReactNative列表ListView的用法
2017/08/02 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
layui 中select下拉change事件失效的解决方法
2019/09/20 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
2019/11/20 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
原生js实现购物车功能
2020/09/23 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
Python函数嵌套实例
2014/09/23 Python
初步认识Python中的列表与位运算符
2015/10/12 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Python基于贪心算法解决背包问题示例
2017/11/27 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
奇怪的鱼:Weird Fish
2018/03/18 全球购物
新领导上任欢迎词
2014/01/13 职场文书
小学生打架检讨书
2014/01/26 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python