用js实现或者once事件修饰符保证按钮只能点击一次(用于提交数据或操作数据库时)

本文介绍了两种防止前端按钮因网络延迟导致重复提交的方法。一是使用Vue的`@click.once`修饰符确保按钮点击事件只执行一次;二是自定义`clickThrottle`函数,通过设置时间间隔避免短时间内多次点击。这两种方法都提供了代码示例和实际应用场景,有助于优化用户体验。
摘要由CSDN通过智能技术生成

今天在使用添加按钮添加记录突然添加了好几条记录,把我都看呆了。然后反应过来是因为网络卡顿导致服务器没有反应重复发送了请求。

疯狂提示添加成功~~~

0ee731ba5e67406ba372e9323e10a0ee.png

 

今天我分享两种方法:

第一种使用once事件修饰符

使用@click.once实现button只能点击一次,适用于提交表单记录或者进行数据库的操作

  1. once,只执行一次
  2. 只有在第一次点击时会执行,再次点击不会起作用

 <el-button type="primary" @click.once="绑定的事件" >确定</el-button>

 第二种自定义一个方法

自定义方法可以写下一个js文件中实现复用。这是参考一位大佬的文章,但是觉得在具体使用上不够小白,于是我就用自己的例子来演示一下下。

 首先我选择在src下的components文件下建立一个clickThrottle.js文件

clickThrottle.js文件内容:

/* 防止重复点击 */
let clickTimer = 0

function clickThrottle(interval = 3000) {
    let now = +new Date(); // 获取当前时间的时间戳
    let timer = clickTimer; // 记录触发事件的事件戳
	
    if (now - timer < interval) {
    // 如果当前时间 - 触发事件时的事件 < interVal,那么不符合条件,直接return false,
    // 不让当前事件继续执行下去
        return false;
    } else { 
    // 反之,记录符合条件触发了事件的时间戳,并 return true,使事件继续往下执行
        clickTimer = now;
        return true;
    }
}

export default clickThrottle

 引入文件

import antiShake from '@/components/clickThrottle'

511544c5cb734e4290293f2d5f073c5c.png

 

 使用:

 5421f52b9624452c902a51bd6ce69d82.png

好吧这波我称之为妈妈级教学,如果对你有帮助欢迎点赞评论收藏哟(o´ω`o)و

 效果图:cb3916ce1ddc4f5a9018c65f8c3ec4ea.png

 

 参考文章地址:http://t.csdn.cn/9g1m3

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

H-rosy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值