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自动判断浏览器分辨率的代码
Jan 28 Javascript
替代window.event.srcElement效果的可兼容性的函数
Dec 18 Javascript
javascript 闭包
Sep 15 Javascript
javascript实现des解密加密全过程
Apr 03 Javascript
JavaScript通过join函数连接数组里所有元素的方法
Mar 20 Javascript
纯javascript响应式树形菜单效果
Nov 10 Javascript
JavaScript性能优化之小知识总结
Nov 20 Javascript
Node.js操作Firebird数据库教程
Mar 04 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
Sep 23 Javascript
jquery表单提交带错误信息提示效果
Mar 09 Javascript
基于vue的验证码组件的示例代码
Jan 22 Javascript
Vue组件更新数据v-model不生效的解决
Apr 02 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
用PHP读取RSS feed的代码
2008/08/01 PHP
PHP中extract()函数的妙用分析
2012/07/11 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
JQuery的AJAX实现文件下载的小例子
2013/05/15 Javascript
13个PHP函数超实用
2015/10/21 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
Python3基础之基本数据类型概述
2014/08/13 Python
python基于multiprocessing的多进程创建方法
2015/06/04 Python
Python字符串的一些操作方法总结
2019/06/10 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
24个canvas基础知识小结
2014/12/17 HTML / CSS
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
几个人围成一圈的问题
2013/09/26 面试题
设计毕业生简历中的自我评价
2013/10/01 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
债务纠纷起诉书
2015/05/20 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
python 调用js的四种方式
2021/04/11 Python
MySQL中CURRENT_TIMESTAMP的使用方式
2021/11/27 MySQL