JS--阻止ajax因数据重复多次提交的方法

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

1.需求:应用ajax技术异步提交数据

2.问题:多次点击元素由于服务器返还数据延迟问题,造成多次数据请求。

3.解决方法:

1.用变量标识符 (定时器模拟延迟返还数据)

  var clickState = 0;//初始化点击状态
    $(function(){
        $('.button').click(function(){
            if( clickState == 1){
                //如果状态为1就什么都不做
            }else{
                clickState = 1;  //如果状态不是1  则添加状态 1
                setTimeout(addAjax,2000);
            }
        });
    });
    function addAjax(){
        $.ajax({
            success:function(){
                    $('.wrap').append('<div>添加</div>') ;
                    clickState = 0;
            }
        });
    }

2.添加html内容作为标示

$(function(){
        $('.button').click(function(){
            if(!!$('.hidden')[0]){

            }else{
                $('body').append('<input type="hidden" class="hidden">'); //向html中添加 input.hidden 元素作为标识符
                setTimeout(addAjax,2000);
            }
        });
    });
    function addAjax(){
        $.ajax({
            success:function(){
                                                        $('.wrap').append('<div>添加</div>') ;
                    $('.hidden').remove();// 返回数据后 移除该元素
            }
        });
    }
防止Layui form表单重复提交的有效方法 提交表单数据时,提交按钮为 submit 类型,以layui为js框架时,会重复提交表单数据,为防止这一情况,有效的做法是: 在&lt;form&gt;里面,加上lay-filter="formConfig" , onsubmit="return false" , 其中 “formConfig” 为自定义,然后在 提交的按钮事件内: form.on("submit(formConfig... 阅读详情

相关推荐

防止重复发送 Ajax 请求

要考虑并理解 success, complete, error, timeout 这些事件的区别,并注册正确的事件,一旦失误,功能将不再可用; 不可避免地比普通流程要要多注册一个 complete 事件; 恢复状态的代码很容易和不相干的代码混合在一起; 推荐用主动查询状态的方式(A、B,jQuery 为例)或工具函数的方式(C、D)来去除重复操作,并提供一些例子作为参考: A. 独占型提交 只允许同时存在一次提交操作,并且直到本次提交完成才能进行下一次提交。 module.submit = function() { if (this.promise_.state() === &#39;pendin

Ajax 防止表单重复提交

我们知道很多种防止表单重复提交方法: 总结开来一共有以下三种: 1、前后台结合来解决问题(Token) 每次提交前段的Token值与后端的Token值互相比较,相等则进行运算逻辑,不相等则返回 (现在主流的框架都支持Token验证) 2、按钮置灰的方式来防止重复提交 如果提交对象为按钮的话,可以对按钮设置disabled,此办法适应于按钮提交,此种方法简单粗暴,也是很多人用的办法,代如

飞天神猪ll的博客 608

防止ajax重复请求的方法(GET和POST)

防止ajax重复请求的方法(GET和POST) ,需要的朋友可以参考下。

js阻止ajax表单提交。出现表单数据无法提交,出现页面打开后回调函数自动执行的可能原因和解决方法

容易出问题的点有两个: 1.回调函数如果用了非匿名的function,则函数方法名后面不能加括号,否则会直接执行这个方法。 2.bootstrap的表单form里面不能有name或者id为submit的按钮或者input,否则会造成servlet无法被提交的问题,点击提交按钮页面会直接被刷新一次。解决方法是把该按钮拎到form表单之外,或者改掉id和name为submit的属性值。 ...

NewObjectMe的博客 533

如何防止重复发送ajax请求

  先来说说重复发送ajax请求带来的问题 - 场景一:用户快速点击按钮,多次相同的请求打到服务器,给服务器造成压力。如果碰到提交表单操作,而且恰好后端没有做兼容处理,那么可能会造成数据库中插入两条及以上的相同数据 - 场景二:用户频繁切换下拉筛选条件,第一次筛选数据量较多,花费的时间较长,第二次筛选数据量较少,请求后发先...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 817

Ajax学习:请求重复发送--阻止

一般情况,用户每触发一次事件。就会产生一次请求,但如果这时候服务器响应比较慢,用户疯狂点击,服务器的压力就会很大,服务器接收了很多相同的请求,就会导致服务器崩溃。-因为如果这个请求是一个失败的请求,如果在成功里面判断 这个请求永远不会为false。可以当你点击多次的时候,如果前面具有相同请求,就会停止前面的请求,只发出当前申请的请求。创建标识变量,标识是否发送AJAX请求。//不要在状态码中判断-

weixin_47295886的博客 567

AJAX重复提交-多种方式

1.造成重复提交原因 由于AJAX提交数据为异步提交,所以当我们点击提交按钮是通过xmlhttprequest向服务器发送异步请求,发送请求需要有处理时间,我们第一次点击的请求尚未完成,就有接二连三的又提交了几次,同时后来发送的请求同事也被发送到后台处理了,这种情况如果是数据读取则不会有太大影响,但是涉及到数据提交保存或者提交之后多表数据处理就更麻烦了,所以此种情况务必要避免,免得给大家

sinat_16741503的博客 612

页面提交处理时候显示“正在处理,请稍后……”,防止二次提交功能。

1.Ajax实现 页面提交处理时候显示“正在处理,请稍后……”,防止二次提交功能。 在后台处理事件代码中添加:System.Threading.Thread.Sleep(1000);延迟处理可以显示效果 Code<htmlxmlns="http://www.w3.org/1999/xhtml"><headid="Head1"runat="server">...

weixin_33841722的博客 2361

ajax异步请求防止重复提交方法

JS通过ajax发起异步请求时,经常会出现一个按钮快速多次点击时,请求进行了多次提交,可能导致很多不必要的问题出现,比如写入某些脏数据等。   此处针对ajax发起请求多次提交的问题进行JS代码处理的简单方法有如下两种: 1、定义lock机制: //提交 var lock = true;//防止重复提交定义锁 $('.saveRemark').click(function(){ v

幡然醒悟的博客 1万+

jq阻止ajax进行多次提交

在函数定义全局变量..var Stch=falseif (Stch==true){alert('请不要重新提交');}else{Stch=true;$.ajax({type:"POST",url:"C_Eidt.do",golobal:false,success:function(data){Stch=false;};});} 或者 使html页面上按钮变灰 2..多次绑...

dengqulun3433的博客 246

js 阻止表单提交上的一些认识

背景:有一个表单,在对表格输入值时,需要实时对对输入的值进行监控,并及时做出提示,如果输入不符合要求,就不能提交表单。 尝试过程 2.1. 想要通过在form上创建一个obsubmit触发事件来阻止表单提交,代码如下:onsubmit="return check_form()" function check_form(){ /* 提交检测表单,配...

duus_nabolun的博客 1744

ajax 防止重复提交

AJAX重复提交的办法总结 $.ajax({ type:'post', url:'LibraryBooks_data.php', data:params, dataType: 'json', async:false, //这是重要的一步,防止重复提交的 success: function (a) { if(a.action=='ture'){    $.success('操作成功!')

Mr_llf的博客 625

防止订单重复提交的几种方法

第一种办法: var flag = false;// 在提交函数外面定义个变量防止重复提交   //提交函数 function sublimit() {     if(flag){         return; // 如果存在就返回     }     flag = true;       $.post(url, {'data':id}, function(res){   ...

wuzengman的博客 9547

jquery表单防重复提交

网站中防止表单重复提交是一个比较普遍的需求,解决办法很多种 有利用session和cookie即生成个一次性token放在表单隐藏域防重复提交 有利用js设置变量锁定 这里以设置表单失效来实现 注册 .submit-btn{ color: #fff;background-color: #7d61dd;} .disabled{ background-

爱代码也爱生活 8357

使用Ajax时如何防止重复提交

1.前言 以前面试的时候,就被问起过:如何防止表单重复提交。当时刚搞开发,没接触过该类问题,也没想过,所以未能答上来。为什么今天特地来说这个问题,是因为现今的项目开发中接触到了,而且相信很多地方也会需要去处理这个问题,因此趁有时间,记录一番。 2.内容 最近项目中做的是客户端页面填写消息之后,发送请求再存入数据库。虽然也可以用form表单来完成,但为了达到页面的局部刷新,我选择的是a

Yangy的博客 1万+

php防止重复提交 ajax,JavaScript_JS Ajax请求如何防止重复提交,好长时间没写js代码了刚好遇 - phpStudy...

JS Ajax请求如何防止重复提交好长时间没写js代码了刚好遇到这样的问题。我们系统多数表单没有做防止重复提交的。由于不想在后端这边处理,因为假如由后端处理的话,就需要在页面加载的时候给出一次性的token值,加大了开发的工作量不说,还容易忘记做这个,同时,ajax也不好处理,需要提交失败的话同时返回新的token值。所以我想在,js这边动手。其实以前和前端提过,久久不见动静,就只好弄块砖丢出去了...

weixin_39585795的博客 151

一文掌握如何用 Layui 和 JavaScript 避免表单重复提交

一文掌握如何用 Layui 和 JavaScript 避免表单重复提交

juedaifenghua2的博客 1770

layui防止表单多次提交

如何禁用layer.confirm的提交按钮 防止多次点击触发ajax请求生成一条记录信息 在项目提测后,测试都会提出一个bug,那就是提交按钮多次点击,会同时生成很多相同数据。我是这样做的:首先浏览layui的 弹层组件文档,然后找到红框,输入以下JS layer.confirm('确定?', { btn: ['按钮一'] }, function(index, layero){ ...

qq_36865945的博客 1582

ajax重复提交解决-亲测有效

问题:页面按钮快速点击,就会多次触发ajax请求,导致数据重复提交,生成脏数据。、 作为一个后端开发,在遇到这样的js问题时候,肯定会很懵币。但是,不要方。 首先,页面引入jquery的blockUI插件。 blockUI插件是什么:http://bookshadow.com/weblog/2014/09/26/jquery-blockui-js-introduction/ jQuery Bloc...

滑稽又了色*的博客 606
上一篇: web前端常用工具网址
下一篇: html--设置360浏览器默认为极速状态的mate标签
homie.Y
博客等级 码龄11年 6粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值