0

私のWebアプリケーションでは、テキストボックスに変更イベントが定義されています。これはajaxメソッドを呼び出し、テキストボックスの値をセッションに格納します。テキストボックスに入力されたテキストの検証をチェックする「テスト」というボタンがあります。ここで、セッションから文字列を取得して検証します。

<html>
<head>  
<script type="text/javascript">
$(document).ready(function(){    
    $("input", form).change(function() {
            //using ajax to store the text value to session
        });

    $("#validateAmt").click(function() {
            //using another ajax to check the value stored in session
        });
});
</script>
</head>
<body>
  <input type="text" id="amount">
  <input type="button" id="validateAmt" value="validate"/>
</body>
</html> 

ただし、テキストボックスに何かを入力し、外側をクリックせずに「テスト」ボタンを直接クリックすると、ボタンイベントが最初にトリガーされ(セッションの古い値で検証されます)、テキストボックス変更イベントがトリガーされる場合があります。そのため、現在、JavaScriptでブールフラグを使用し、最初のテキストボックス変更イベントを呼び出すことを考えました。この種のシナリオに対する効率的または優れた解決策はありますか?また、メソッドはどのように実行されますか?それは並行して発生しますか、それとも次々に発生しますか?

4

2 に答える 2

0

他のことが起こる前に変更イベントが常に発生することに依存しないでください。サーバーに送信する前に常にデータを検証してください(サーバーでも常に検証してください)。

検証にコストがかかる場合 (たとえば、ajax 呼び出しが必要な場合)、特定の値が既に検証されているかどうかを追跡する最適化を追加できますが、これは単なるパフォーマンスの最適化であり、コア ロジックの一部ではありません。

于 2012-08-07T18:13:26.510 に答える