高并发情况下如何防止重复提交?

#1

比如注册功能,在网络延迟或者高并发情况下,会提交两次一样的数据,怎么避免这个问题?希望有个java后台demo

#2

我建议你的提交请求用ajax。而不是同步请求。这样你可以控制用户的行为。在服务器没响应的时候。直接禁止用户的二次提交操作。甚至禁止任何操作。这样的话,从操作上就防止了用户的重复提交。但是程序里面的重复数据。是要靠你自己去处理。例如:DB添加唯一约束。

1赞
#3

问题来了 ,怎么防止用户重复提交

#4

如果不是分布式可以通过redis+token+uuid去实现

2赞
#5

在进入表单的时候先生成token+uuid成为临时唯一id 并存入redis 然后在表单里面用隐藏域存token+uuid然后提交后时候redis删除掉。当用户重新加载提交的时候redis已经不存在,就可以直接跳转提示用户!

1赞
#6

防止重复提交,简单可以直接js方面入手直接按钮点击后disable 。等待返回结果成功后 去除disable这是不安全的。但应付瓜领导已经够用了。 或者后端处理增加token机制类似于验证码,只可使用一次,重复点击就是多次使用了,必然只会成功一次。

2赞
#7

牛逼啊,大佬

#8

牛逼啊,大佬.