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 相关文章推荐
js tab 选项卡
Apr 26 Javascript
jquery 仿QQ校友的DIV模拟窗口效果源码
Mar 24 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
Jan 15 Javascript
jQuery 属性选择器element[herf*='value']使用示例
Oct 20 Javascript
jquery实现类似淘宝星星评分功能有截图
Sep 15 Javascript
js判断手机端(Android手机还是iPhone手机)
Jul 22 Javascript
JQuery的attr 与 val区别
Jun 12 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
Feb 10 Javascript
Vue.js 60分钟快速入门教程
Mar 28 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
May 24 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
Jun 17 Javascript
vue 获取及修改store.js里的公共变量实例
Nov 06 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
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
2017/11/06 PHP
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
微信小程序自定义组件
2017/08/16 Javascript
vue+web端仿微信网页版聊天室功能
2019/04/30 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
微信小程序 生成携带参数的二维码
2019/10/23 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
python进阶教程之动态类型详解
2014/08/30 Python
Python实现获取某天是某个月中的第几周
2015/02/11 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
师范毕业生个人求职信
2013/12/09 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
党员干部承诺书范文
2014/03/25 职场文书
兽医医药专业求职信
2014/07/27 职场文书
作文评语集锦
2014/12/25 职场文书
个人总结与自我评价
2015/02/14 职场文书
中国汉字听写大会观后感
2015/06/02 职场文书
2015大学迎新标语
2015/07/16 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers