前端解决按钮重复提交数据问题(节流和防抖)

🍿*★,°*:.☆( ̄▽ ̄)/$:*.°★* 🍿
🍟欢迎来到前端初见的博文,本文主要讲解在工作解决按钮重复提交数据问题(节流和防抖)
👨‍🔧 个人主页 : 前端初见
🥞喜欢的朋友可以关注一下,下次更新不迷路🥞


一、问题

当我们在页面进行点点点的操作时,很可能遇到点击两次的行为,这时候提交或保存按钮也没有进行校验,很可能保存两份数据,因此,作为开发人员,对需要保存类似的按钮进行校验很有必要。
在这里插入图片描述

二、 解决方案(通过节流防抖解决)

场景:解决按钮多次点击重复提交数据问题
防抖方法(debounce.js)

let timeout = null

/**
 * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数
 *
 * @param {Function} func 要执行的回调函数
 * @param {Number} wait 延时的时间
 * @param {Boolean} immediate 是否立即执行
 * @return null
 */
function debounce(func, wait = 500, immediate = false) {
    // 清除定时器
    if (timeout !== null) clearTimeout(timeout)
    // 立即执行,此类情况一般用不到
    if (immediate) {
        const callNow = !timeout
        timeout = setTimeout(() => {
            timeout = null
        }, wait)
        if (callNow) typeof func === 'function' && func()
    } else {
        // 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法
        timeout = setTimeout(() => {
            typeof func === 'function' && func()
        }, wait)
    }
}

export default debounce

节流方法(throttle.js)

let timer; let
    flag
/**
 * 节流原理:在一定时间内,只能触发一次
 *
 * @param {Function} func 要执行的回调函数
 * @param {Number} wait 延时的时间
 * @param {Boolean} immediate 是否立即执行
 * @return null
 */
function throttle(func, wait = 500, immediate = true) {
   
    if (immediate) {
        if (!flag) {
            flag = true
            // 如果是立即执行,则在wait毫秒内开始时执行
            typeof func === 'function' && func()
            timer = setTimeout(() => {
                flag = false
            }, wait)
        }
    } else if (!flag) {
        flag = true
        // 如果是非立即执行,则在wait毫秒内的结束处执行
        timer = setTimeout(() => {
            flag = false
            typeof func === 'function' && func()
        }, wait)
    }
}
export default throttle

在mian.js进行挂载使

// 防抖方法
import debounce from './plugins/debounce'
// 节流方法
import throttle from './plugins/throttle'
const $u = {
  debounce,
  throttle
}
// 挂载节流防抖到原型
Vue.prototype.$u = $u

组件中使用

<el-button
  icon="iconfont icon-save-line"
  type="primary"
  @click="$u.throttle(() => getAllData(), 1000)"
  >保存
</el-button>
<!-- getAllData 按钮触发方法   1000时间 -->

总结

如果这篇【文章】有帮助到你💖,希望可以给我点个赞👍,创作不易,如果有对前端端或者对python感兴趣的朋友,请多多关注💖💖💖,咱们一起探讨和努力!!!
👨‍🔧 个人主页 : 前端初见

前端初见
关注 关注
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
前端如何防止接口重复提交
xiangzhihong8的专栏
04-18 379
接口重复提交指的是在网络通信中,同一个请求被客户端多次发送到服务器端的情况。这种情况可能由于多种原因导致,例如用户在等待期间多次点击提交按钮、网络超时后客户端重新发送请求、客户端发送的请求在网络传输过程中出现重复等。接口重复提交可能会导致多种问题,当服务器收到重复请求时,可能会多次处理相同的数据,导致数据重复操作或者产生不一致的结果。重复提交请求会增加服务器的负载和资源消耗,特别是在高并发情况下,可能会导致服务器压力过大,影响系统的性能和稳定性。
前端防抖节流
waterwo的博客
04-08 2141
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录@[TOC](文章目录)一、防抖(debounce)非立即执行版:立即执行版:双剑合璧版:二、节流(throttle)1.时间戳版:2.定时器版:双剑合璧版: 提示:以下是本篇文章正文内容,下面案例可供参考 一、防抖(debounce) 所谓防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。 防抖的应用场景很多: 1.输入框中频繁的输入内容,搜索或者提交信息; 2.频繁的点.
防止重复提交
weixin_33885253的博客
09-18 283
简介 在现在的web开发中我们经常使用ajax从后端获取数据提交数据。对于有些游戏爱好者或者手速甚快的同学来说,一个按钮触发click事件可以触发多次。有经验的前端开发者肯定会使用防止重复提交方式避免重复提交数据。有经验的后端则会在每次提交数据时加vision版本号。如果后端加版本号来验证,则需要前端每次提交时增加版本号这个字段。因此做防止重复提交还是交给伟大的前端同学哈!现在我就把我所使用的方...
关于防抖的详细解读和使用(保姆级一步一步带你解读代码)
最新发布
m0_61644311的博客
08-08 808
这是一个关于防抖的保姆级教程,带你一步一步熟悉防抖的流程
按钮重复提交js
tz_gx的专栏
05-26 481
var submitApply = document.getElementById("submitApply");     submitApply.onclick = function (){return false;};
web前端开发中防治重复提交
asxxf的博客
11-08 695
web前端数据请求或者表单提交往往通过对dom的点击事件来操作,但是往往因为认为点击过快(少年手速挺快的嘛),或者因为响应等待使得用户误人为没操作而重复很多次点击,造成表单数据的连续重复提交,造成用户体检的不好,甚至影响到整个系统的安全性。而前端的防治重复提交至少很有效的防治了人为正常操作下的很多不必要麻烦。下面就来讲讲如何有效避免前端的表单重复提交
前端防止重复提交
每天学习一点点
09-27 1908
防止连续点击提交按钮重复数据库插入相同记录,在前端发请求之前拦截。
vue button 多次点击重复提交
dilong6852的博客
05-02 247
//发表评论 sendComment () { this.disabled = true if (this.text == ''){ this.$message({ type:'error', message:'输入内容不能为空', }) this.disabled = false }else{ this.$post('/xx/xx/IdleGoodsComment',{ goods_i...
前端--js基础(实现防抖节流
m0_51123132的博客
06-07 955
防抖节流
聊一聊前端 JS 的防抖节流
张浔CSDN
11-25 2252
文章目录(PS:觉得不错请点赞收藏支持一下)前言一、为什么需要使用防抖节流二、`debounce` 防抖2.1 概念2.2 实现三、`throttle` 节流3.1 概念3.2 实现总结 前言 ​ 如上图这是今天老师布置的一个任务,当初次看到任务要求时,对所述的防抖节流是非常的陌生,第一件事就是去查阅资料了,逛了各种的教程平台,博客平台,结合了一下总结出了本篇文章,总结不易,希望可以得到大家的鼓励,当然有哪里不对的地方还请指出,感谢???? 一、为什么需要使用防抖节流 实践最容易看清一切,直接给
前端面试--什么是防抖节流
m0_70802628的博客
05-11 463
写在前面 CSDN话题挑战赛第1期 活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题:前端面试宝典 话题描述:欢迎各位加入话题创作得小伙伴,如果我没有猜错得话,我觉得你是应该同我一样是一位前端人。如今前端在IT事业中的占比越来越重,已经成为不可缺少的部分,前端技术也是层出不穷,各种技术类、技术框架也蜂拥而出,前端面试的难度也随之增加,如果我们拥有一套前端面试宝典。如果你是应聘者:你就可以从容的sol
前端防止用户重复提交js实现代码示例
12-02
背景 前端在向后端进行数据提交的时候,通常会需要在第一次提交返回前,阻止用户在快速点击发送二次请求,即防止重复提交,最简单的方法是使用标志参数或者 class 元素控制,但缺点是,每个控制重复提交的地方都需要加上这个逻辑,重复性太强,且控制逻辑不统一。 目前前端使用的是http协议,所以提交方式为两种 异步提交,使用jQuery.ajax() form 表单同步提交 下面这篇文章将给大家详细介绍关于这两种方法实现的方法示例,下面话不多说了,来随着小编一起看看详细的介绍吧 异步防重复提交的方案如下 通过 jQuery 提供的 ajaxPrefilter 方法,将在请求提交之前进行过
WEB 前端开发中防治重复提交的实现方法
01-19
web前端数据请求或者表单提交往往通过对dom的点击事件来操作,但是往往因为认为点击过快(少年手速挺快的嘛),或者因为响应等待使得用户误人为没操作而重复很多次点击,造成表单数据的连续重复提交,造成用户体检的不好,甚至影响到整个系统的安全性。而前端的防治重复提交至少很有效的防治了人为正常操作下的很多不必要麻烦。下面就来讲讲如何有效避免前端的表单重复提交 表单提交有以下几种方式: <form name=”form” method=”post” action=”#> <input type=”submit” name=”submit” value=”提交> </form> 另外,还有一种常用的
前端性能优化--防抖节流
qq_44971069的博客
11-11 150
1.防抖函数:一段时间内,只执行最后一次。防止抖动,它在短时间内多次触发同一个事件时,会取消之前的触发,直到最后一次触发后的一定时间间隔内没有新的触发才执行函数。(列举: 乘坐地铁,过闸机时,每个人进入后3秒后门关闭,等待下一个人进入。控制流量,它会在触发事件期间以固定的时间间隔执行函数,而不管事件触发得多频繁。(2)调整浏览器窗口大小时,resize 次数过于频繁,造成计算过多,此时需要一次到位,就用到了防抖。(throttle)是优化高频触发事件的技术,它们可以提高性能,避免不必要的计算和函数执行。
防止前端按钮重复提交数据问题
开源世界
10-20 1462
一、问题导入 当我们在页面进行点点点的操作时,很可能遇到点击两次的行为,这时候提交或保存按钮也没有进行校验,很可能保存两份数据,因此,作为开发人员,对需要保存类似的按钮进行校验很有必要。 二、问题分析 我们通过控制isDisable 来设置 disabled来控制按钮的点击和不可点击。 默认isDisable:的值为 false,按钮可以点击。 当我们点击这个按钮的时候,首先将按钮的绑定isDisable设置为true,1秒后立马将其置为false。此时,用户就不能多点了, 过了一秒的时间后才能去操作这个按
防止button重复提交
事后诸葛亮的程序人生(微信:zq9017197)
08-07 588
Title
防抖、防止频繁请求(重复提交相同数据)
总结分享
03-12 4078
这篇文章将介绍如何在 `java `中`不依赖数据库`完成防抖、防止重复提交相同数据
前端防止用户重复提交请求的方案
qq_45272329的博客
05-14 3125
在项目开发时,在网络情况比较差的情况下,可能用户在提交表单时多次点击,然后导致多次请求后台接口导致数据重复写入,造成数据混乱。这个场景在前端和后端都能处理,但后端一般会让前端处理这个问题(手动狗头),那么前端需要怎么处理呢。 第一种方案:以Vue+ElementUI项目为例,如下面所示代码所示,简单实用。 <template> <!--... todo --> <el-button size='small' :disabled="Loading" :loading=
节流防抖的应用场景
07-28
节流(throttling)和防抖(debouncing)是前端开发中常用的性能优化技术,用于限制事件触发的频率。它们的应用场景如下: 1. 节流:在高频率触发的事件(如滚动、鼠标移动、窗口调整等)中,节流可以限制事件处理函数的执行频率,以降低事件处理的开销。常见的应用场景有: - 滚动加载:当用户滚动页面时,通过节流来限制请求数据的频率,避免多次重复请求。 - 表单验证:当用户在输入框中连续输入时,可以通过节流来限制验证函数的调用频率,减少不必要的验证请求。 - 防止按钮重复点击:当用户频繁点击一个按钮时,通过节流来限制按钮点击事件的触发频率,防止重复提交表单或执行其他重要操作。 2. 防抖:在频繁触发的事件中,防抖可以延迟事件处理函数的执行,只在一定时间内最后一次触发后才执行。常见的应用场景有: - 搜索框自动补全:当用户在搜索框中输入字符时,通过防抖来延迟发送请求,只在用户停止输入一段时间后才发送请求。 - 窗口大小调整:当用户调整窗口大小时,通过防抖来延迟重新计算布局或响应式样式的操作,减少频繁重排重绘带来的性能损耗。 - 输入框实时搜索:当用户在输入框中输入搜索关键字时,通过防抖来延迟触发搜索请求,提高搜索的响应速度。 总之,节流防抖都是用来控制事件触发频率的技术,在需要限制事件处理的频率时可以考虑使用它们来优化性能。
写文章

热门文章

  • 百度地图API的使用 144678
  • el-upload 文件上传组件的使用 138666
  • Vue路由跳转的五种方式 137968
  • el-table实现可拖拽移动列和动态排序字段 134445
  • el-select 触底分页+远程搜索 131538

分类专栏

  • 数据大屏 4篇
  • 前端知识 25篇
  • 数据可视化 2篇
  • 前端面试题 11篇
  • html 8篇
  • 前端框架知识 8篇
  • Echarts 4篇
  • GIT 1篇
  • 2022前端面试题 6篇

最新评论

  • 百度地图API的使用

    前端初见: 你可以根据需要引入,这篇这是我写demo用到的,一般选择一个相对稳定的使用即可 ,v1.4以及以前的版本无序申请秘钥(ak),自v1.5版本开始需要先申请秘钥(ak),才可以使用。另外百度地图API的1.1和2.0两个版本的区别,推荐使用显示效果更好的2.0版本,并提供了注册、申请密匙的步骤。针对2.0版本,展示了代码示例,包括地图初始化、标注图标、地图加载问题的解决方案,以及如何处理地图标注乱码问题。还提供了一些完整示例代码供参考

  • 百度地图API的使用

    baikou999: api里有个版本v=1.0或者v=其他的有什么区别吗

  • Minemap 地图使用

    咸鱼翻身: https://www.npmjs.com/package/@cennavi-fe/minemap

  • 百度地图API的使用

    前端初见: 公司会退供对应的key

  • 百度地图API的使用

    Bonny雨曦: 公司用的话是不是就得付费

大家在看

  • Java | Leetcode Java题解之第486题预测赢家
  • Java | Leetcode Java题解之第485题最大连续1的个数
  • C语言 | Leetcode C语言题解之第486题预测赢家
  • C++ | Leetcode C++题解之第485题最大连续1的个数
  • Python | Leetcode Python题解之第485题最大连续1的个数

最新文章

  • express
  • 双token无感刷新
  • Fiddler抓包工具实战
2024年11篇
2023年33篇
2022年13篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端初见

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳坪山网站建设公司秦皇岛商城网站优化服务威海seo网站优化低价机械行业网站优化高质量的丹徒网站优化廊坊网站优化托管邯郸瓷砖行业网站优化推广可靠吗吉林seo优化网站源码中山机械网站优化公司银川seo网站关键词优化长沙专业网站优化公司销售做网站优化效果阿拉善盟网站优化低成本网站优化怎么做图片怎么优化到网站抚顺网站关键词优化永城网站优化武侯网站排名优化公司绥化网站优化哪家有实力域名网站怎么优化商丘企业网站优化排名公司沈阳网站优化经验网站的优化都在用易速达莲花电影网站优化新郑网站关键词排名优化网站做优化询问火30星棒网站搜索优化建议怎么写栾城网站优化seo服务天津网站优化排名哪家值得信赖网站关键词怎么优化上首页潜山网站优化费用情况香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化