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 相关文章推荐
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
Oct 26 Javascript
jquery animate图片模向滑动示例代码
Jan 26 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
Mar 07 Javascript
jquery实现可拖拽弹出层特效
Jan 04 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
Mar 06 Javascript
Javascript6中字符串的四个新用法分享
Sep 11 Javascript
jQuery插件ajaxFileUpload使用实例解析
Oct 19 Javascript
利用jQuery实现一个简单的表格上下翻页效果
Mar 14 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
Sep 10 Javascript
JavaScript中click和onclick本质区别与用法分析
Jun 07 Javascript
js for终止循环 跳出多层循环
Oct 04 Javascript
JavaScript设计模型Iterator实例解析
Jan 22 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实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
javascript 事件绑定问题
2011/01/01 Javascript
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
在Vue中使用echarts的方法
2018/02/05 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
JS实现小星星特效
2019/12/24 Javascript
python实现批量修改文件名代码
2017/09/10 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
python批量获取html内body内容的实例
2019/01/02 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
Python FFT合成波形的实例
2019/12/04 Python
Python学习笔记之装饰器
2020/08/06 Python
Python爬取梨视频的示例
2021/01/29 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
物业客服专员岗位职责
2013/11/30 职场文书
客房主管岗位职责
2013/12/09 职场文书
思想政治教育专业个人求职信范文
2013/12/20 职场文书
采购人员的个人自我评价
2014/01/16 职场文书
2014全国两会学习心得体会1000字
2014/03/10 职场文书
学校政风行风整改方案
2014/10/25 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
基层党建工作简报
2015/07/21 职场文书
Python绘制分类图的方法
2021/04/20 Python