2011-09-05 2 views
1

は、イベント処理の最適化:一つの大きな、または多くの小さな?最高の、そしてなぜあるパターン

$myElements.delegate(selector, 'event1 event2', function() { 
    if (event.type === 'event1') { /* Handle event 1 */ } 
    if (event.type === 'event2') { /* Handle event 2 */ } 
} 

OR

$myElements 
    .delegate(selector, 'event1', function() { 
     /* Handle event 1 */ 
} 
    .delegate(selector, 'event2', function() { 
     /* Handle event 2 */ 
} 

言い換えれば、それは一つの大きな統一ハンドラ、または多くの小さな個別のハンドラを持って良いですか?

+0

どのような方法で良いですか?ハンドラを割り当てるときのパフォーマンス?ハンドラを呼び出すときのパフォーマンス?コードの明快さと保守?他の方法でより良い? – user113716

+0

二つの関心事:ハンドラの割り当てとinvokation – Randomblue

答えて

3

である第二1

http://jsperf.com/lklklklklklklklklk

を使用することを言うと思います。 jQueryのソースから:

// Handle multiple events separated by a space 
// jQuery(...).bind("mouseover mouseout", fn); 
types = types.split(" "); 

したがって、文字列を分割し、各イベントごとにwhileループを実行するステップがあります。最初のケースでは、すべてのイベントに対してハンドラが呼び出され、if文が実行されます。 2番目のメソッドでは、実際にアタッチされたハンドラだけが呼び出されます。

また、第2版は、同様に読み取ることがずっと簡単です。

0

私は2番目の1が、私は第二の溶液が好まれるべきであることかなり確信している、おそらく速く

関連する問題