扫码关注官方订阅号
学习是最好的投资!
javascript - 解决注册登录 用户重复提交-PHP中文网问答-javascript - 解决注册登录 用户重复提交-PHP中文网问答
围观一下哦,学习一下。
ajax和表单提交解决方法差不多 (1)setTimeout + clearTimeout 连续的点击会把上一次点击清除掉,也就是ajax请求会在最后一次点击后发出去; (2)disable 按钮; (3)每次点击都发请求,往回调里加闭包带唯一递增的id,每一次请求回调以后看这个id是不是主函数体里最后一次点击的id,是则调用回调,不是则返回,也就是ajax回数后看这个回调是不是最后一次点击的回调,不是就不操作页面了;
第1,2种请求是做用户疯狂快速点击时防止发大量请求的 第3种是用户不那么频繁的点击,但是每一次点击ajax请求回数时间比较长,也就是第二次请求可能比第一次先回数这种特殊情况的
有一个token机制,最早接触的时候是在struts上。大致是这样的,当请求注册页面的时候,服务器会返回给浏览器正常的页面和一个隐藏的input,它的值是一个服务器生成的字符串。当你点击提交的时候,这个token会被加载到服务器端,服务器一旦得到了这个token,匹配后立即删除服务器上的token。当用户再提交的时候,因为找不到对应的token,所以不会重复的提交用户的信息。你可以利用相似的手法去处理。
补充一点,ajax提交的方式可以判断xhr的readyState是否为4而得到是否完成了一次提交,不是4的都return掉
如果你使用jquery ajax form 里面有一个berforsubmit option 参数。你可以在之前做一个登录状态的检查。禁止按钮的给人的体验很差,不建议使用
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
javascript - 解决注册登录 用户重复提交-PHP中文网问答-javascript - 解决注册登录 用户重复提交-PHP中文网问答
围观一下哦,学习一下。
ajax和表单提交解决方法差不多
(1)setTimeout + clearTimeout 连续的点击会把上一次点击清除掉,也就是ajax请求会在最后一次点击后发出去;
(2)disable 按钮;
(3)每次点击都发请求,往回调里加闭包带唯一递增的id,每一次请求回调以后看这个id是不是主函数体里最后一次点击的id,是则调用回调,不是则返回,也就是ajax回数后看这个回调是不是最后一次点击的回调,不是就不操作页面了;
第1,2种请求是做用户疯狂快速点击时防止发大量请求的
第3种是用户不那么频繁的点击,但是每一次点击ajax请求回数时间比较长,也就是第二次请求可能比第一次先回数这种特殊情况的
有一个token机制,最早接触的时候是在struts上。大致是这样的,当请求注册页面的时候,服务器会返回给浏览器正常的页面和一个隐藏的input,它的值是一个服务器生成的字符串。当你点击提交的时候,这个token会被加载到服务器端,服务器一旦得到了这个token,匹配后立即删除服务器上的token。当用户再提交的时候,因为找不到对应的token,所以不会重复的提交用户的信息。你可以利用相似的手法去处理。
补充一点,ajax提交的方式可以判断xhr的readyState是否为4而得到是否完成了一次提交,不是4的都return掉
如果你使用jquery ajax form 里面有一个berforsubmit option 参数。你可以在之前做一个登录状态的检查。禁止按钮的给人的体验很差,不建议使用