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 相关文章推荐
js 实现无干扰阴影效果 简单好用(附文件下载)
Dec 27 Javascript
js浏览器本地存储store.js介绍及应用
May 13 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
May 17 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
Oct 30 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
Jan 05 Javascript
jQuery排序插件tableSorter使用方法
Feb 10 Javascript
js代码延迟一定时间后执行一个函数的实例
Feb 15 Javascript
angular json对象push到数组中的方法
Feb 27 Javascript
vue移动端项目缓存问题实践记录
Oct 29 Javascript
node app 打包工具pkg的具体使用
Jan 17 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
May 20 Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 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
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
优化javascript的执行速度
2010/01/23 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
JQuery里面的几种选择器 查找满足条件的元素$(&quot;#控件ID&quot;)
2011/08/23 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
Django通过json格式收集主机信息
2020/05/29 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
如何编写python的daemon程序
2021/01/07 Python
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
艺术设计专业个人求职信
2013/09/21 职场文书
《晏子使楚》教学反思
2014/02/08 职场文书
处罚决定书范文
2015/06/24 职场文书