Jquery中巧用Ajax的beforeSend方法


Posted in Javascript onJanuary 20, 2016

jQuery是经常使用的一个开源js框架,其中的$.ajax请求中有一个beforeSend方法,用于在向服务器发送请求前执行一些动作。

$.ajax({
  beforeSend: function(){
   // Handle the beforeSend event
  },
  complete: function(){
   // Handle the complete event
  }
  // ......
});

防止重复数据
在实际项目开发中,提交表单时常常由于网络或者其原因,用户点击提交按钮误认为自己没有操作成功,进而会重复提交按钮操作次数,如果页面前端代码没有做一些相应的处理,通常会导致多条同样的数据插入数据库,导致脏数据的增加。要避免这种现象,在$.ajax请求中的beforeSend方法中把提交按钮禁用掉,等到Ajax请求执行完毕,在恢复按钮的可用状态。

举个例子:

// 提交表单数据到后台处理
$.ajax({
  type: "post",
  data: studentInfo,
  contentType: "application/json",
  url: "/Home/Submit",
  beforeSend: function () {
    // 禁用按钮防止重复提交
    $("#submit").attr({ disabled: "disabled" });
  },
  success: function (data) {
    if (data == "Success") {
      //清空输入框
      clearBox();
    }
  },
  complete: function () {
    $("#submit").removeAttr("disabled");
  },
  error: function (data) {
    console.info("error: " + data.responseText);
  }
});

模拟Toast效果
ajax请求服务器加载数据列表时提示loading(“加载中,请稍后...”),

$.ajax({
  type: "post",
  contentType: "application/json",
  url: "/Home/GetList",
  beforeSend: function () {
    $("loading").show();
  },
  success: function (data) {
    if (data == "Success") {
      // ...
    }
  },
  complete: function () {
    $("loading").hide();
  },
  error: function (data) {
    console.info("error: " + data.responseText);
  }
});

方法beforeSend,用于在向服务器发送请求前添加一些处理函数,希望通过这篇文章加深大家对beforeSend方法的学习认识。

Javascript 相关文章推荐
IE的fireEvent方法概述及应用
Feb 22 Javascript
js正文内容高亮效果的实现方法
Jun 30 Javascript
JS实现Fisheye效果动感放大菜单代码
Oct 21 Javascript
JavaScript预解析及相关技巧分析
Apr 21 Javascript
javascript实现延时显示提示框特效代码
Apr 27 Javascript
实例解析jQuery中proxy()函数的用法
May 24 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
Jun 19 Javascript
JS通过位运算实现权限加解密
Aug 14 Javascript
vue根据值给予不同class的实例
Sep 29 Javascript
vue-cli中vue本地实现跨域调试接口
Jan 16 Javascript
小程序从手动埋点到自动埋点的实现方法
Jan 24 Javascript
vue实现菜单切换功能
May 08 Javascript
Javascript中神奇的this
Jan 20 #Javascript
javascript实现图片轮播效果
Jan 20 #Javascript
JS获取鼠标坐标位置实例分析
Jan 20 #Javascript
属于你的jQuery提示框(Tip)插件
Jan 20 #Javascript
学习JavaScript设计模式之模板方法模式
Jan 20 #Javascript
高性能JavaScript循环语句和条件语句
Jan 20 #Javascript
详解Javascript模板引擎mustache.js
Jan 20 #Javascript
You might like
一个数据采集类
2007/02/14 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
php生成excel列序号代码实例
2013/12/24 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
javascript实现的距离现在多长时间后的一个格式化的日期
2009/10/29 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
javascript数组去重小结
2016/03/07 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
基层干部十八大感言
2014/01/19 职场文书
企业宣传标语
2014/06/09 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
2015年度党员个人总结
2015/02/14 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
2017新年晚会开幕词
2016/03/03 职场文书