巧用Ajax的beforeSend 提高用户体验

jQuery是经常使用的一个开源js框架,其中的$.ajax请求中有一个beforeSend方法,用于在向服务器发送请求前执行一些动作。
具体可参考jQuery官方文档:http://api.jquery.com/Ajax_Events/

$.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);
}
});

转自:https://www.cnblogs.com/fanyong/p/3883670.html

最新文章

  1. C++基础知识(5)---类和对象
  2. 如何用Perl对Excel的数据进行提取并分析
  3. vue的transition过渡效果
  4. C#版的eval,C#Light开源嵌入式脚本,unity热更新不再愁
  5. 分享使用Entity Framework的一个坑:Include无效
  6. winserver 2008 r2 iis7.5 实现php wordpress url静态化操作步骤(UrlRewrite实现)
  7. C# ASP.NET系统缓存全解析
  8. 数据结构练习 01-复杂度2. Maximum Subsequence Sum (25)
  9. 如何使用Reaver-PJ-Wi-Fi网络的WPA密码
  10. 浅谈 js 字符串之神奇的转义
  11. iOS开发--XMPPFramework--好友模块(四)
  12. 织云 Metis:看腾讯怎么做智能运维
  13. 你不可不知的iOS与Android差异点!
  14. 2018年7月6日go语言学习
  15. 常被问到的十个 Java 面试题
  16. python基础学习之文件操作&函数
  17. Win32线程安全问题.同步函数
  18. linux不同终端的操作是如何在messages日志中区分的
  19. Ubuntu16.04+CUDA8.0+cuDNN5.1+Python2.7+TensorFlow1.2.0环境搭建
  20. LeetCode:151_Reverse Words in a String | 字符串中单词的逆反 | Medium

热门文章

  1. Flutter移动电商实战 --(43)详细页_补充首页跳转到详细页
  2. vue---vue2.x自定义plugin,给vue添加全局方法,原型上增加全局方法
  3. CV3——学习笔记-续
  4. VS2015编译GDAL库出现宏重复定义 snprintf: 宏重定义
  5. Civil 3D百度云地址
  6. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_06-用户认证-认证服务查询数据库-Bcrypt介绍
  7. QML之信号与槽
  8. js面向对象写法及栈的实现
  9. 【Leetcode_easy】748. Shortest Completing Word
  10. css+html 实现 光晕 光圈