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 相关文章推荐
使javascript也能包含文件
Oct 26 Javascript
用js解决数字不能换行问题
Aug 10 Javascript
js实现漂浮回顶部按钮实例
May 06 Javascript
javascript实现的图片切割多块效果实例
May 07 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
Apr 29 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
Jun 02 Javascript
input 禁止输入特殊字符的四种实现方式
Aug 24 Javascript
bootstrap实现图片自动轮播
Dec 21 Javascript
JavaScript 跨域之POST实现方法
May 07 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
Jul 12 Javascript
微信小程序实现图片滚动效果示例
Dec 05 Javascript
javascript开发实现贪吃蛇游戏
Jul 31 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 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
深入浅析php json 格式控制
2015/12/24 PHP
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
jquery预览图片实现鼠标放上去显示实际大小
2014/01/16 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
基于Vue实现timepicker
2017/04/25 Javascript
12个非常有用的JavaScript技巧
2017/05/17 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
Python中使用SAX解析xml实例
2014/11/21 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
Django开发的简易留言板案例详解
2018/12/04 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
园林资料员岗位职责
2013/12/30 职场文书
《值日生》教学反思
2014/02/17 职场文书
班班通校本培训方案
2014/03/12 职场文书
大学生社团活动总结
2014/04/26 职场文书
我爱我班主题班会
2015/08/13 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
使用nginx配置访问wgcloud的方法
2021/06/26 Servers