在网页上,我们有以下服务器端表单验证系统。例如,如果用户正在为一个事件添加日期详细信息(并且一个事件可以包含许多这样的日期详细信息),我们会在单击“添加”按钮时调用一个 javascript 函数,如下所示。
validateForm('frmName','codelibrary/classes/myclass.php','validationArrName')
where:
@frmName = form name
@codelibrary/classes/myclass.php = location of class file, that contains classes and functions for server side validation
@validationArrName = Type of validation we apply
In the php script, validationArrName is defined as a list of keys (representing form fields) and values (representing the functions we will call to validate that form field).
validationArrName = array ('fieldName1'=>validationFun1,'fieldName2'=>validationFun2);
eg:
fieldName1 = email_address
validationFun1 = validateEmail()
在html页面上,我们通过ajax调用服务端验证如下。
$.post(className,$("form[name="+formName+"]").serialize()+"&isValidate=1&validateArrayName="+validateArrayName,function(data){ ... });
如果验证函数报告错误,我们会在 html 页面上显示相应的错误消息。
问题是当我们第一次这样做时(例如:在硬刷新页面之后),与后续请求相比,提交此日期详细信息表单进行验证需要花费大量时间。
我们观察到,它不是调用一次 codelibrary/classes/myclass.php 文件,而是在跳转到所需位置 (validationArrName) 并运行该文件之前实际上引用了该文件超过 10 次。
对于后续请求,它可以正常工作并且只引用该文件一次。
这里可能是什么问题?我们使用 jquery submit 会不会有问题?