THE HAM MEDIA BLOG

jQuery1.4のアルファ版を試してみた その1

Clip to Evernote このエントリーをはてなブックマークに追加
カテゴリ:
jQuery
タグ:
jquery

jQuery1.4a1

今月のあたまの話になるのですが、「jQuery 1.4 Alpha 1」がリリースされていました。

年末年始にかけて最新版がリリースされる予定となっていたのですが、今回のはそのテスト段階のもので、Alpha1としてでています。(開発の最新ではAlpha2が徐々に作成進行中)

これまでのjQuery1.3.2と、どのような点で変化するのか、現時点でわかっていることだけでも書いておこうと思います。

jQuery 1.3.2→1.4a1での変化

リリースの情報をみると、今回の変化は下記の内容になるようです。

  • 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.
jQuery: » jQuery 1.4 Alpha 1 Released

変更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で追加・変更されている内容は多々あります。まだデモを用意していないのもあるので、今回ご紹介するのはこの辺までにしておきます。また時間をみつけてご紹介しようと思います。

この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

トップに戻る