1、场景
网页卡顿的时候,用户点击会造成重复操作\n\n如果前端不做防重复操作。会导致重复提交,重复下单等意外操作。而且对于系统资源来说也是一种浪费常规的解决方法是让前端把点击后的按钮设置为不可点击,这样基本上能就能解决了。99.999999%能解决。前端这么弄过后,就没有遇到过需要后端弄的了。为了万无一失,剩下的不能解决的就需要后端做防重复点击的操作了。
2、解决方案
2.1、前端通过js让按钮点击后失效,基本上就够了。除非别人要搞你网站,直接扒你接口,放心,你的网站没有那么有价值。
2.2、数据库增加唯一索引,不建议改数据库,虽然方便。
2.3、利用令牌防止表单重复提交表单页面初始化时,会从后端获取一个生成一个token,这个token放在表单隐藏,当表单提交时一起提交,提交后后端使该token失效;后端判断前端提交的token为空或者失效则表单提交失败(发送token,验证token)这里需要前后端配合
2.4、使用Spring AOP自定义切入实现,作为后端,倾向于这种方式。一般接口提交时会有token验证,表明该请求是合法一个用户。后端可以通过 用户token+类+方法来判断是否是重复请求。