2011-10-19 18 views
0

私はこのコードスニペットをどのように最適化することが可能か知りたいですか?jQueryコードを最適化しますか?

私は同じことを繰り返すと思いますが、最適化されたものを探す方法はわかりません。

ご提案いただきありがとうございます。

答えて

3

再度要素を調べる気にしない場合、あなたは単にあなたも一度要素を選択し、それらへの参照を維持することができます。もちろん、

$('#datedebut, #datefin').change(function() { 
    if (Date.parse($('#datefin').val()) - Date.parse($('#datedebut').val()) <= 0) { 
     alert('Impossible'); 
    } 
}); 

を行うことができ...

しかし、パフォーマンス面での最適化ではありません。

+0

用事、慎重に最初にお読みください。 –

+0

私はそれを行うより良い方法を実際に見ることができません!何があっても、両方の要素を比較するために検索する必要があります。それぞれのルックアップをキャッシュする方法を想像することができます。そのため、一度しか実行されませんが、結果のコードは必要以上に冗長です。数千回実行されるイテレータでない限り、単純な関数ではパフォーマンスを最適化する必要はほとんどありません。 –

0

あなたはこれを試すことができます:

<input type="text" id="datefin" onchange="validateChange()" /> 
<input type="text" id="datedebut" onchange="validateChange()" /> 

<script type="text/javascript"> 
    function validateChange(){ 
     if (Date.parse($('#datefin').val()) - Date.parse($('#datedebut').val()) <= 0) { 
      alert('Impossible'); 
     } 
    }); 
</script> 
+0

最近、インラインイベントハンドラは避けるのが一般的です。 –