jQuery: The Write Less, Do More, JavaScript Library

19日(米国時間)、jQueryの最新版となるjQuery 1.4.2が公開された。jQueryはJavaScriptで開発されたAjaxアプリケーションフレームワーク。軽量で高速、さまざまなシーンで採用されるもっとも人気のあるフレームワークのひとつ。jQuery 1.4.2はjQuery 1.4系のマイナーアップデートという位置づけだが、パフォーマンス向上とバグ修正という2点で注目に値するバージョンに仕上がっている。

jQuery 1.4.2ではバグ修正とパフォーマンス改善を目的として全体に渡ってソースコードの書き変えを実施。特に次の4つのポイントに関してパフォーマンスの改善が取り組まれたとされている。Taskspeed benchmarkの実施結果が掲載されているが、他のフレームワークや従来のjQueryよりも1.4.2の方が包括的にみて高速に動作していることが確認できる。

jQuery 1.4.2で注力したパフォーマンス改善点
.bind()および.unbind()コールのパフォーマンス
.empty()、.remove()および.html()コールのパフォーマンス
ドキュメントへDOMノードを挿入するパフォーマンス
$("body")コールのパフォーマンス

jQuery: » jQuery 1.4.2 Releasedに掲載されているTaskspeedグラフから抜粋 (短い方が高速)

Taskspeed benchmarkでベンチマークを実施した場合の例 - Firefox 3.6 on FreeBSD 9-CURRENT

1.4.2では従来の.live()および.die()メソッドを補完する目的で新しく.delegate().undelegate()も追加されている。

$("table").each(function(){
        $("td", this).live("hover", function(){
                $(this).toggleClass("hover");
        });
});

.delegate() - jQuery APIに掲載されているサンプルによれば、上記.live()を使ったコードと下記.delegate()を使ったコードは同じ処理を実施することになる。

$("table").delegate("td", "hover", function(){
        $(this).toggleClass("hover");
});

1.4.2ではこれ以外にも長らくバグとして存在してきた問題が修正されている。バグ修正と高速化実施の観点から、jQuery 1.4.0および1.4.1からアップグレードを検討する価値がある。