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 相关文章推荐
动态改变textbox的宽高的js
Oct 26 Javascript
jquery实用代码片段集合
Aug 12 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
Sep 12 Javascript
用jquery实现自定义风格的滑动条实现代码
Apr 26 Javascript
多种方法判断Javascript对象是否存在
Sep 22 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
Oct 09 Javascript
IE中getElementsByName()对有些元素无效的解决方案
Sep 28 Javascript
jQuery插件echarts去掉垂直网格线用法示例
Mar 03 Javascript
Vue的MVVM实现方法
Aug 16 Javascript
Vue下的国际化处理方法
Dec 18 Javascript
JS复杂判断的更优雅写法代码详解
Nov 07 Javascript
Element Carousel 走马灯的具体实现
Jul 26 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 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
php ss7.5的数据调用 (笔记)
2010/03/08 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
Python 元类使用说明
2009/12/18 Python
Python设计模式之观察者模式实例
2014/04/26 Python
Python遍历zip文件输出名称时出现乱码问题的解决方法
2015/04/08 Python
Python实现处理管道的方法
2015/06/04 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
客服文员岗位职责
2013/11/29 职场文书
办公室保洁员岗位职责
2013/12/02 职场文书
小学校园活动策划
2014/01/30 职场文书
感恩教育活动总结
2014/05/05 职场文书
推普周活动总结
2014/08/28 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
教师素质教育心得体会
2016/01/19 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
python使用pymysql模块操作MySQL
2021/06/16 Python