jQuery: The Write Less, Do More, JavaScript Library |
人気の高いJavaScriptフレームワーク「jQuery」の最新版となるjQuery 1.7が公開された。ダウンロードして利用することもjQuery CDN (http://code.jquery.com/jquery-1.7.js、http://code.jquery.com/jquery-1.7.min.js)経由で利用することもできる。GoogleおよびMicrosoftも自社のCDNでjQueryを配布している。jQuery 1.7における主な新機能は次のとおり。
- イベントハンドリングを統合する.on()および.off()の導入。従来であれば.bind()、.unbind()、.delegate()、.undelegate()、.live()、.die()などを使うところだが、jQuery 1.7からは.on()および.off()に置き換えることが可能。1.7以降は従来の記述方法ではなく、.on()および.off()を使うことが推奨されている。
- イベントデリゲーションの最適化よるパフォーマンスの向上。jQeury 1.6.4比較で2倍以上の高速化が確認されている。
- IE6、IE7、IE8におけるHTML5サポートの改善。
- RequireJSやcurl.jsといった非同期モジュール読み込みに対応したローダとの相互接続性の向上。
- jQuery.Deferredへプログレスハンドラを追加。
- jQuery.isNumeric()の導入。
コーディングの観点から見ると.on()/.off()の導入が注目点となる。リリースの説明文章には次のような書き換えのサンプルコードが掲載されている。どのような置き換えが可能かわかりやすく参考になる。
$('a').bind('click', myHandler);
$('a').on('click', myHandler);
$('form').bind('submit', { val: 42 }, fn);
$('form').on('submit', { val: 42 }, fn);
$(window).unbind('scroll.myPlugin');
$(window).off('scroll.myPlugin');
$('.comment').delegate('a.add', 'click', addNew);
$('.comment').on('click', 'a.add', addNew);
$('.dialog').undelegate('a', 'click.myDlg');
$('.dialog').off('click.myDlg', 'a');
$('a').live('click', fn);
$(document).on('click', 'a', fn);
$('a').die('click');
$(document).off('click', 'a');
イベントデリゲーションの高速化も今回のリリースでの注目ポイントとなる。掲載されているグラフによれば、jQuery 1.6.4との比較でどのブラウザも2倍以上の高速化が実現されていることを確認できる。
jQueryはJavaScriptフレームワークとしてはデファクトスタンダードに近いポジションを獲得している。