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 统计时间
Mar 09 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
Feb 27 Javascript
原生js做的手风琴效果的导航菜单
Nov 08 Javascript
浅谈javascript 迭代方法
Jan 21 Javascript
JavaScript对数字的判断与处理实例分析
Feb 02 Javascript
JavaScript中的闭包介绍
Mar 15 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
Aug 06 Javascript
vue 中swiper的使用教程
May 22 Javascript
使用异步组件优化Vue应用程序的性能
Apr 28 Javascript
使用 Vue 实现一个虚拟列表的方法
Aug 20 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
Sep 24 Javascript
vue 动态生成拓扑图的示例
Jan 03 Vue.js
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
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
php,不用COM,生成excel文件
2006/10/09 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
DWR Ext 加载数据
2009/03/22 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
使用python3+xlrd解析Excel的实例
2018/05/04 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
了解AppleTalk协议吗
2014/04/01 面试题
儿科护理实习自我鉴定
2013/09/19 职场文书
在校学生职业规划范文
2014/01/08 职场文书
大学生通用个人自我评价
2014/04/27 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
2015年教师师德师风承诺书
2015/04/28 职场文书
Python中的xlrd模块使用整理
2021/06/15 Python