首页 > 其他分享 >巧用AJAX的BEFORESEND 提高用户体验,避免重复数据

巧用AJAX的BEFORESEND 提高用户体验,避免重复数据

时间:2023-06-26 10:25:10浏览次数:49  
标签:function error ajax AJAX beforeSend BEFORESEND 按钮 data 巧用

https://www.cnblogs.com/lshbk/p/10930679.html

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

模拟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);

标签:function,error,ajax,AJAX,beforeSend,BEFORESEND,按钮,data,巧用
From: https://www.cnblogs.com/Dongmy/p/17504638.html

相关文章

  • Vue中的Ajax请求和Slot插槽的技术探究
    Ajax请求Ajax是一种异步的Web开发技术,用于在不刷新整个页面的情况下向服务器发送请求和接收响应。Vue提供了一种简单而强大的方法来处理Ajax请求。以下是在Vue中进行Ajax请求的基本步骤:安装Axios:Axios是一个流行的JavaScript库,用于进行Ajax请求。你可以使用npm或yarn等包管理......
  • 前端ajax调用后端下载Excel模板流,解决输出乱码等问题
    functionimportTemplate(){$.ajax({url:"/importTemplate",type:"get",success:function(data){letdownloadUrl="../importTemplate"//创建a标签letlabel=$("......
  • 9. SpringMVC处理ajax请求
    9.1、@RequestBody@RequestBody可以获取请求体信息,使用@RequestBody注解标识控制器方法的形参,当前请求的请求体就会为当前注解所标识的形参赋值<!--此时必须使用post请求方式,因为get请求没有请求体--><formth:action="@{/test/RequestBody}"method="post"> 用户名:<inp......
  • Prototype和Scriptaculous圣经——《Ajax实战:Prototype与Scriptaculous篇》
    媒体评论“本书全面展示如何使用Prototype和Scriptaculous,让你可以专注于真正重要的事情:实现你的创意!”                  ——ThomasFuchs,Scriptaculous创始人,Wollzelle公司CTO “在Prototype和Scriptaculous方面的图书中,......
  • AJAX
    1.概述‍​AJAX​​(AsynchronousJavaScriptAndXML):异步的JavaScript和XML。‍我们先来说概念中的​JavaScript​和XML​JavaScript​表明该技术和前端相关;​XML​是指以此进行数据交换。1.1作用‍AJAX作用有以下两方面:与服务器进行数据交换:通过A......
  • AJAX常用知识点及应用
    一、概念相关AsyncJavaScriptAndXML是JS通过异步方式啦获取响应并且局部更新页面二、XHLHttpRequest【在AJAX中被大量使用】是一个API,挂在window上。为客户端提供了在客户端和服务器之间进行数据传输的功能通过URL来获取数据,并且不会使页面整个刷新三、原生JS-------......
  • AJAX实现基于WEB的文件上传的进度控制保存草稿
    AJAX实现基于WEB的文件上传的进度控制 作者:liuzuochen 1.引言2.代码实现2.1.服务器端代码2.1.1.文件上传状态类(FileUploadStatus)2.1.2.文件上传状态侦听类(FileUploadListener)2.1.3.后台服务类(BackGroundService)2.1.4.文件上传状态控制类(Bea......
  • ajax请求springboot
    老是忘记ajax请求格式,记录一下吧后面看自己的functionsave(){varURL="/reconciliation/wzglWzMaterilApplicationDetail/saveSupplier";varcc=JSON.stringify({data:"world",p:{pag:0,pageS......
  • Ajax 交流文档
    Ajax交流文档BacktoDocumentationIndex使用Ajax的主要原因通过适当的Ajax应用达到更好的用户体验。把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的。引用Ajax这个概念的最早......
  • ajax + java 实现类似网易邮箱邮件地址自动完成功能
    ajax+java实现类似网易邮箱邮件地址自动完成功能2008-04-0218:30********************************************************************源代码下载链接:http://www.javaeye.com/topic/150778***************************************************************......