javascript - Bei der Registrierung registriert sich derselbe Benutzer mehrmals und es werden mehrere Teile derselben Daten in der Datenbank angezeigt. Der Hintergrund wurde überprüft, und das Front-End-JS begrenzt die Übermittlung alle zwei Sekunden, es sind jedoch weiterhin mehrere Daten vorhanden erscheinen.
世界只因有你
2017-06-30 09:52:16
Bei der Registrierung registriert sich derselbe Benutzer mehrmals und es werden mehrere Teile derselben Daten in der Datenbank angezeigt. Der Hintergrund wurde überprüft und die Front-End-JS beschränken die Übermittlung alle zwei Sekunden, es werden jedoch weiterhin mehrere Datenteile angezeigt
前端可以在进入页面的时候设置注册按钮可以点击,在点击发送注册请求的时候先把注册按钮设置成不可点击,等请求回来假设注册失败,则把按钮再设置成可以点击。
数据库中用唯一索引作限制
不知道你是用
debouce
还是throttle
限制两秒提交的比较好的做法是点击注册把按钮禁用掉,等请求返回再在回调函数启用按钮,记得报错的回调也要启用注册按钮
后端数据库字段也要做唯一索引
服务端校验需要作唯一性的判断;前端按钮点击后禁止点击,等待服务端返回后解除禁止点击,或者通过超时方式来实现
注册必须要做唯一验证
数据库加用户名主键唯一验证呀
前端禁用按钮的方案虽然也是必需的,但是这个仅仅只是避免普通用户多次点击而已,不能阻止非浏览器的‘用户’
不管服务器接受了多少次重复的请求,必须后端进行处理
目的是同一个用户只能注册一次,参考其他回答,主键
参考我的文章Web项目如何防止客户端重复发送请求