jquery Ajax 全局调用封装实例详解


Posted in Javascript onJanuary 16, 2017

前言:

有一种情况:全站都要用异步方式来调用 数据,提交数据,那么你每次操作 都会要$.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 字段就行了,避免了重复工作和代码冗余。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
Prototype 工具函数 学习
Jul 23 Javascript
简洁Ajax函数处理(示例代码)
Nov 15 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
Dec 31 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
Jul 27 Javascript
基于canvas的二维码邀请函生成插件
Feb 14 Javascript
angularjs点击图片放大实现上传图片预览
Feb 24 Javascript
微信小程序实现多宫格抽奖活动
Apr 15 Javascript
Webpack打包字体font-awesome的方法示例
Apr 26 Javascript
JS实现模糊查询带下拉匹配效果
Jun 21 Javascript
基于JS实现前端压缩上传图片的实例代码
May 14 Javascript
微信小程序开发(二):页面跳转并传参操作示例
Jun 01 Javascript
如何使用JavaScript策略模式校验表单
Apr 29 Javascript
javascript循环链表之约瑟夫环的实现方法
Jan 16 #Javascript
函数四种调用模式以及其中的this指向
Jan 16 #Javascript
js实现导航栏中英文切换效果
Jan 16 #Javascript
Bootstrap面板使用方法
Jan 16 #Javascript
codeMirror插件使用讲解
Jan 16 #Javascript
微信小程序 图片边框解决方法
Jan 16 #Javascript
微信小程序 scroll-view隐藏滚动条详解
Jan 16 #Javascript
You might like
PHP中GET变量的使用
2006/10/09 PHP
php实现httpclient类示例
2014/04/08 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
PHP函数超时处理方法
2016/02/14 PHP
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
JavaScript定义函数_动力节点Java学院整理
2017/06/27 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
简单了解python模块概念
2018/01/11 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
python的turtle库使用详解
2019/05/10 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
Python函数生成器原理及使用详解
2020/03/12 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
PageFactory设计模式基于python实现
2020/04/14 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
王老吉广告词
2014/03/20 职场文书
工程负责人任命书
2014/06/06 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
婚礼父母致辞
2015/07/28 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP