我有一个非常简单的注册表格,只需要用户名,电子邮件和密码。我想知道为什么用户提交后需要5-10秒才能完成注册。我尝试在服务器端进行分析(请参阅here),并已将其作为问题消除。验证以表格提交5-10秒为
它看起来像我的问题是客户端验证。我使用的是告知用户,如果他们正试图使用已经存在的名称或密码的用户的https://jqueryvalidation.org/ JS文件以及其他自定义文件:
$('.register-form').validate({
submitHandler: function(form){
$('.register-form').submit();
},
rules: {
password: {
required: true
},
tos: {
required: true
},
username: {
required: true,
remote: '/api/v1/users/username/'
},
email: {
required: true,
email: true,
remote: '/api/v1/users/email/'
},
},
messages: {
first_name: {
required: 'Please include your first name.'
},
last_name: {
required: 'Please include your last name.'
},
password: {
required: 'Please create a password'
},
tos: {
required: 'Please check that you agree to our TOS and Privacy Policy'
},
email: {
required: 'Please include your email.',
email: 'Please insert a valid email address.',
remote: 'This email is already in use.'
},
username: {
required: 'Please create a username.',
remote: 'This username is already in use.'
}
}
});
当我使用Chrome的分析(picture link),它看起来像这个问题是关于10秒的数千个小任务,其中register.js和jquery.validator.js互相调用。具体而言,它始终是submitHandler:函数(表单)在register.js上触发的行。所以我认为我看到了问题,但我不清楚如何解释或解决问题。
任何想法?我对使用这些验证插件相当陌生。
*“加上其他自定义文件” * ...问题是有可能的原因或远程验证花费很长的时间。可以使用[jQuery全局ajax处理程序](http://api.jquery.com/category/ajax/global-ajax-event-handlers/)来监视远程检查 – charlietfl
也为什么你不只是使用'required' 'tos'?请注意,触发jQuery提交将再次运行验证,您的警报不会阻止表单提交 – charlietfl
感谢您的TOS建议。有一些小的理由让它成为警报,但我只是修复了一些小问题,并更改了register.js脚本。 – wraasch