web-dev-qa-db-ja.com

追加するイベントリスナーが多すぎるとパフォーマンスに影響しますか?

JavaScript(jQuery)イベント/リスナーに関する一般的な質問があります。パフォーマンスの問題が発生しないクリックリスナーの数に制限はありますか?

38

パフォーマンスの観点では、イベントがバインドされる要素の数は、問題が発生する場所です。

jsperf test です。各ケースでバインドされるイベントは1つだけですが、多くの要素へのバインドははるかに遅いことがわかります。

Jsperfの3番目のテストは、イベントを親要素にバインドし、委任を使用して必要な要素をリッスンする方法を示しています。 (この場合 .many

n.b.テストでは、3番目のオプションが最速であることが示されていますが、それはクラスではなくidで要素をターゲットにしているためです。

更新:もう1つ perf testidにバインドされた3つのイベントとclassを使用してバインドされた1つのイベントを表示

29
atmd