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 相关文章推荐
JavaScript库 开发规则
Jan 31 Javascript
Javascript面向对象编程(二) 构造函数的继承
Aug 28 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
Feb 11 Javascript
jquery、js操作checkbox全选反选
Mar 12 Javascript
PHP结合jQuery实现的评论顶、踩功能
Jul 22 Javascript
javascript实现简单的ajax封装示例
Dec 28 Javascript
JS时间控制实现动态效果的实例讲解
Jul 31 Javascript
详解Vue-cli代理解决跨域问题
Sep 27 Javascript
使用Vuex实现一个笔记应用的方法
Mar 13 Javascript
React和Vue中监听变量变化的方法
Nov 14 Javascript
深入理解JavaScript 箭头函数
May 30 Javascript
js不常见操作运算符总结
Nov 20 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
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
同一空间绑定多个域名而实现访问不同页面的PHP代码
2006/12/06 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
javascript add event remove event
2008/04/07 Javascript
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
Js实现手机发送验证码时按钮延迟操作
2014/06/20 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
js创建数组的简单方法
2016/07/27 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
Python中一行和多行import模块问题
2018/04/01 Python
Numpy数组的保存与读取方法
2018/04/04 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
2018/04/25 Python
python 实现倒排索引的方法
2018/12/25 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
python  文件的基本操作 菜中菜功能的实例代码
2019/07/17 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
python实现canny边缘检测
2020/09/14 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
美国女孩服装购物网站:Justice
2017/03/04 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
自荐信要包含哪些内容
2013/11/06 职场文书
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
小学教师节活动方案
2014/01/31 职场文书
《登鹳雀楼》教学反思
2014/04/09 职场文书
大学生就业求职信
2014/06/12 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
政府领导干部个人对照检查材料思想汇报
2014/09/24 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书