2011-07-08 4 views
-1

イベントを追加するときのパフォーマンス(クリック、マウスオーバー、マウスアウトなど)はどれですか?私は多くのイベントリスナーを私の要素に付け加えています:ホバーイベントは、2つのパフォーマンスの違いがあるのだろうかと思っています。.live()またはdocument.ready?

答えて

4

あなたは間違った方法でそれを考えています。 live()は非常に高価なオブザーバーです。できればそれを避け、代わりにdelegate()を使用してください。あなたは、AJAXやDOMready後にDOMノードを作成するにはJavaScriptを使用していない場合は、イベントにオブザーバーを付ける心配する必要はありません。

$(function(){ 
    $('#my_node').click(function(){}); // will work fine for all nodes loaded before domready 
}); 
+1

+1、それはあなたが 'デリゲート'とちょうどひどいことがあることに注意する価値があります。 – Marc

-2
$(document).ready(function() { 
    //Put all your events here, where they'll be live anyway 
}); 
-1

は、それはあなたのニーズによって異なりますが、ここにあります一般的なルール:

はあなたが

が(bind('event', ...)ことに注意してくださいすることができますよう以下のように.live()と結合する、それが可能だたび.bind()と結合するようにしてください

にバインドするのは.live()よりも優先されます。ライブは常に変更を待ち受けるため、より多くのリソースを消費するためです。

これが役に立ちます。乾杯、