如何防抖(防止重复提交)

为了防止出现同一时间重复提交的需要做以下处理:
1.前端处理
前端添加是否确认提交/保存 等提示框,避免出现手误多点的情况,从而出现重复提交的现象

2.后端处理
使用redis防抖,将提交的数据,取出其中唯一性的部分当做redis的key,value值随意,每次进入保存数据的方法时,根据key先从redis取出值,观察redis是否存在值,若存在,则说明重复提交了。

 //取值操作,在刚进入保存方法时取值
        Object obj = redisTemplate.opsForValue().get("add-" + userCode.toString());
        if (ObjectUtils.isNotEmpty(obj)) {
            return Result.generateErrorMessage("请勿在5秒钟内频繁重复操作!");
        }
//存值操作,在最后一步保存数据时存放
  // 设置过期时间 6秒过期
            redisTemplate.opsForValue().set("add-" + userCode.toString(), userCode.toString(), 6000, TimeUnit.MILLISECONDS);

3.数据库处理
在数据库创建唯一索引
述这里是创建了联合唯一索引,避免有同一日期内daily_date 同一个人create_code 有两条及以上的数据

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值