正当性のある比較って難しいよなあ

いまどきのイベントハンドリングは遅いのかどうか問題 - nothing but trouble
この比較での処理時間ってほとんどJavaScriptのコードのコンパイルと実行になると思います。


「昔ながらのやりかた。」のほうはおそらく各要素ごとに個別に

javascript:(function(){alert(1)})()

が書いてあるんだろうけど、そうすると要素ごとにこれらが読み込まれて解釈されると思う。要素ごとにその内容が違ってて別の処理をさせることになってても読み込み時間はまあ変わらないように思う。


「いまどきのやりかた。」ではどう書くのだろう? 処理ごとに別のclass名にして、

var elems = $C('events');
for (var i = 0,length = elems.length; i < length; i++)
  addEvent(elems[i],'click',function(){alert(1)},false);

の部分をどんどん書いていくのかな。もっと違ううまいやりかたがあるのかな。


おそらくリンク先のエントリで示されたのは全部の要素のコールバックが同じfunctionな場合はいまどきのやり方がいいですよということなんじゃないかな。同じ処理になる要素が多い場合はリンク先で示された2つだと「いまどきのやりかた。」のほうが当然ブラウザ側も速いしまったく問題ないし、むしろ「昔ながらのやりかた。」みたいなのだと同じJavaScriptのコードをたくさんの要素に入れられてて無駄が多くて最悪、と思います。
でもそういうページ(たとえば100個の要素のonclickに同じJavaScriptが割り当てられているとか)がtypicalなのかどうかは僕にはわからないですけど。