Web ページには、サーバー側のフォーム検証の次のシステムがあります。たとえば、ユーザーがイベントの日付の詳細を追加している場合 (イベントにはそのような日付の詳細を多数含めることができます)、以下のように [追加] ボタンをクリックすると 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 ファイルを 1 回呼び出す代わりに、必要な場所 (validationArrName) にジャンプして実行する前に、実際にはこのファイルを 10 回以上参照することがわかりました。
後続のリクエストでは、正常に機能し、そのファイルを 1 回だけ参照します。
ここで何が問題になる可能性がありますか? jquery submit の使い方に問題があるのでしょうか?