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 相关文章推荐
基于jquery的tab切换 js原理
Apr 01 Javascript
JavaScript.Encode手动解码技巧
Jul 14 Javascript
用Jquery实现多级下拉框无刷新的联动
Dec 22 Javascript
JS控件的生命周期介绍
Oct 22 Javascript
JavaScript的jQuery库插件的简要开发指南
Aug 12 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 Javascript
Bootstrap精简教程中秋大放送
Sep 15 Javascript
Vue.js实现文章评论和回复评论功能
May 30 Javascript
angular2+node.js express打包部署的实战
Jul 27 Javascript
微信小程序文章列表功能完整实例
Jun 03 Javascript
微信小程序实现音乐播放页面布局
Dec 11 Javascript
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
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
Admin generator, filters and I18n
2011/10/06 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
SWFObject基本用法实例分析
2015/07/20 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
python中PIL安装简单教程
2016/04/21 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
python实现简单的文字识别
2018/11/27 Python
python文本数据处理学习笔记详解
2019/06/17 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
tensorflow自定义激活函数实例
2020/02/04 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
网络编辑岗位职责
2014/03/18 职场文书
教师对学生的评语
2014/04/28 职场文书
清明节演讲稿
2014/05/27 职场文书
党员干部四风问题整改措施思想汇报
2014/10/12 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
幼师个人总结范文
2015/02/28 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书
创业计划书之网络外卖
2019/10/31 职场文书
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android