jQuery1.4のアルファ版を試してみた その1
今月のあたまの話になるのですが、「jQuery 1.4 Alpha 1」がリリースされていました。
jQuery: » jQuery 1.4 Alpha 1 Released
年末年始にかけて最新版がリリースされる予定となっていたのですが、今回のはそのテスト段階のもので、Alpha1としてでています。(開発の最新ではAlpha2が徐々に作成進行中)
これまでのjQuery1.3.2と、どのような点で変化するのか、現時点でわかっていることだけでも書いておこうと思います。
jQuery 1.3.2→1.4a1での変化
リリースの情報をみると、今回の変化は下記の内容になるようです。
jQuery: » jQuery 1.4 Alpha 1 Released
- live was drastically overhauled and now supports submit, change, mouseenter, mouseleave, focus, and blur events in all browsers. Also now supports context and data.
- append, prepend, etc. have been heavily optimized.
- add has been adjusted to always return elements in document order.
- find, empty, remove, addClass, removeClass, hasClass, attr, and css have been heavily optimized.
変更1:liveイベントの追加
1.3に追加されたliveイベントですが、liveで使えるイベントが増えたようです。これは英文を読んでもわかるかなと思おうので、今回は省略。
変更2:appendなどの最適化
appendなどの要素を追加する機能ので
変更3:addの調整
これについてはどのような変更なのか未確認です。
変更4:findなどの最適化
全部の変化はわからないですが、.attrや.cssで$('element').attr('title',function(){});というようなことができるようになったようです。
appendなどの調整
appendやprependなどは、繰り返し何かをさせるときはeachで行う必要がありましたが、1.4からは別の書き方ができるようになっているようです。
$("#demo li").each(function(){ $(this).append("<span>追加</span>"); }); $("#demo li").append(function(){ return "<span>追加</span>" });
前者は従来の書き方で、後者は1.4から対応されるようになった書き方。速度は若干ですが後者の方が速いようです(時折前者の方が速い時もあり)。後者の方がシンプルで書きやすいかなと個人的に思ったりします。
ちなみに1.3で後者の書き方をしても何も変化しません。
速度の改善
1.4では様々な点において、今までよりも実行の速度が早くなっているのですが、その一例をご紹介します。
id付きのタグを繰り返し表示する場合
ScriptでHTMLを表示させる場合、下の2つの例では1.3と1.4では速度が変化するそうです。
for ( var i = 0; i < 250; i++ ) { $("<li>テスト</li>").attr("id", "test" + i).appendTo("ul#demo"); } for ( var i = 0; i < 250; i++ ) { $("ul#demo").append("<li id='test" + i + "'>テスト</li>"); }
リストにIDをつけていくつも繰り返し表示させるという例ですが、1.3では後者の方が若干ですが速いようです。しかし1.4においては、前者の方が速くなっているようです。
その他の変更
ここまで紹介したものの他にも、1.4で追加・変更されている内容は多々あります。まだデモを用意していないのもあるので、今回ご紹介するのはこの辺までにしておきます。また時間をみつけてご紹介しようと思います。