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 相关文章推荐
新浪刚打开页面出来的全屏广告代码
Apr 02 Javascript
Javascript中eval函数的使用方法与示例
Apr 09 Javascript
flash javascript之间的通讯方法小结
Dec 20 Javascript
JS实现文字放大效果的方法
Mar 03 Javascript
理解javascript中DOM事件
Dec 25 Javascript
JavaScript中数组的22种方法必学(推荐)
Jul 20 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
Sep 01 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
Oct 12 Javascript
JavaScript实现网页头部进度条刷新
Apr 16 Javascript
angular4自定义组件详解
Sep 28 Javascript
浅谈JS对象添加getter与setter的5种方法
Jun 09 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
Nov 13 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
在线增减.htpasswd内的用户
2006/10/09 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
javascript 动态添加表格行
2006/06/22 Javascript
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
Google 静态地图API实现代码
2010/11/19 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
使用Python的turtle模块画国旗
2019/09/24 Python
学习python需要有编程基础吗
2020/06/02 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
课改先进个人汇报材料
2014/01/26 职场文书
建筑专业毕业生求职信
2014/09/30 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python
Python标准库pathlib操作目录和文件
2021/11/20 Python