接口防抖(重复点击)

一,概念

复制代码
	防抖技术指的是在一个事件被连续触发时,只执行最后一次操作,忽略中间的操作。通常我们会设置一个定时器,在规定的时间内如果发生多次事件,则只保留最后一次事件,确保请求只发送一次。
	在 Web 开发中,防抖和防重复提交是两个常见的技术需求。在处理用户交互或表单提交等场景中,我们需要确保用户在一定时间内只能触发一次请求,避免重复提交或者频繁请求的问题。

二,解决方案

前端和后端都可以处理这个问题

  1. 前端处理

在web端,提交完表单后前端可以给 提交按钮 添加上disabled按钮或者使用计时器,如常见的发送短信验证码

  1. 后端处理

后端处理的方法就比较多了,下面说常用的几种

  • token实现

    在请求A接口(提交数据)前先请求获取唯一码的接口B(获取数据)来获取 $token = md5(uniqid());接口B中会将生成的token放入缓存中并设置过期时间。请求A接口带上这个token,A接口会判断缓存中是否有此token,如果有此token,则响应请求。

  • mysql数据库增加字段唯一性约束

    可以给某字段增加唯一索引(唯一约束和唯一索引不同的两个东西,唯一约束是通过唯一索引实现,添加唯一约束就生成了唯一索引,但是添加唯一索引不会自动生成唯一约束,字段中的null值被认为是不同的)

  • 接口限流

    接口限流可以使用缓存来实现。请求接口的时候先判断是否有此请求的缓存,如果没有,处理请求,然后将此请求加入缓存,并设置过期时间。

相关推荐
appleคิดถึง40 分钟前
tp6数据导出excel文件时对大数据量处理
php·excel·tp6
霸王大陆2 小时前
《零基础学 PHP:从入门到实战》模块十:从应用到精通——掌握PHP进阶技术与现代化开发实战-2
android·开发语言·php
小李独爱秋3 小时前
计算机网络经典问题透视:TCP的“误判”——非拥塞因素导致的分组丢失
服务器·网络·tcp/ip·计算机网络·智能路由器·php
凯子坚持 c7 小时前
Docker 容器全生命周期管理与运维命令深度解析
运维·docker·php
霸王大陆8 小时前
《零基础学 PHP:从入门到实战》模块十:从应用到精通——掌握PHP进阶技术与现代化开发实战-4
开发语言·php
golang学习记9 小时前
Redis Pipeline 实战指南:提升 Go 后端性能的利器
redis·golang·php
JienDa10 小时前
JienDa聊PHP:乡镇外卖跑腿小程序开发实战:基于PHP的乡镇同城O2O系统开发
开发语言·php
霸王大陆10 小时前
《零基础学 PHP:从入门到实战》模块十:从应用到精通——掌握PHP进阶技术与现代化开发实战-1
android·开发语言·php
拾忆,想起11 小时前
Dubbo序列化异常终结指南:从精准诊断到根治与防御
开发语言·前端·微服务·架构·php·dubbo·safari
霸王大陆11 小时前
《零基础学 PHP:从入门到实战》模块十:从应用到精通——掌握PHP进阶技术与现代化开发实战-5
android·开发语言·php