position: absolute;

jQuery 1.xと2.x、そして3.0


このエントリーは、jQuery Advent Calendar 2014 - Adventarの2日目です。

「え、いまさら?」という感じを受ける人もいるかもしれませんが、なんか見た感じ「意外と…」という印象があるので、3.0の情報もちょっと前に出てきた今、改めて整理しようかなと。

jQuery 1.xと2.x

まず、1.xと2.xについてですが、どちらも現役です。そして提供している機能に差はありません。ですので、実際にjQueryを利用する場合には、最終的に「できること」は同じです。なので、世間一般的なバージョンの付け方と同じと考えて2.xでなければ最新のプラグインが利用できないとか、そういったことは一切ありません。その辺り勘違いしている方がまだちょっといたりするので、注意しましょう。

ではなぜ2系列が並行存在しているのか?

ではなぜ、そんなことをしているのか?という事になりますが、この辺りについて詳細に知りたい場合は、私が執筆に参加した『現場のプロが教えるWeb制作の最新常識 知らないと困るWebデザインの新ルール』という本にわざわざ2ページを割いて書いているのでそちらを読んでいただくとして(Amazonの2014年年末セールでなんとKindle版が998円!宣伝乙!>俺)、ざっくりと書いてしまうと機能強化などで膨らんでいったjQueryのファイル容量を削減するために生まれたのが2.x系です。

で、そのファイル容量の削減をどのように行ったか?ですが、対象ブラウザを絞ることで、レガシーブラウザのためのコードを削除して行っています。なので、2.x系はIE8以下などのいわゆるレガシーブラウザには対応していません。なので、「バージョンが新しいから」と日本のPC向けサイト案件で2.x系を使ってしまうとハマりが待っているので注意して下さい(BtoB案件など特に)。

1.xと2.xそれぞれの使いどころ

ここまで読めばなんとなく予想がつくと思いますが、「どっち使えばいいの?」という感じであれば1.x系。2.x系は検討する必要もないです。2.x系はスマートフォンやタブレット、もしくはレガシーブラウザ切り捨て御免とか、そしてHTML5でアプリケーション(ハイブリッドアプリとか)を作成するときなど、対象をはっきりさせる場合でのみ2.xを選択します。

あと、Migrateプラグインを利用する場合はもう1.xでいいです(2.xでも動くんですけども)。

そしてjQueryは3.0へ

今年の10月の終わりにjQueryの公式ブログでjQuery 3.0: The Next Generations | Official jQuery Blogというエントリーが公開されました。その中で。これまでのようなバージョンの並行は廃止し、1.x系はjQuery Compat 3.0、2.x系はjQuery 3.0と呼ばれるようになります。どちらも3.0でバージョン番号を揃えて、jQueryとjQuery Compatという風に名称を変えるという形になります。CompatはCompatibleのことですので、これまでのように歴史の長いブラウザへの対応を継続し、そうでないjQueryは新しいブラウザへの対応に特化するということになります。そして、これまでどおり提供する機能自体は同じです。 また、Migrateプラグインは今後も提供されるようです。

ただ、これまでとの違いですが、どうやらIEはjQuery Compat 3.0から8以降のサポートということになるようです。また、jQueryはよりモダンなブラウザやWebViewなどのアプリ内でのブラウザに特化していくようです。その辺りはリリースされれば詳細はわかってくるかと。

まあ、これでそれぞれの名称が変わるので、最近の流行っているBowerなどのパッケージ管理ツールやCDNなどで管理がしやすくなると思います。

じわりじわりと特にフロンエンドの分野で脱jQueryが進んでいる感じですが、まだまだサイト制作においては非常に重要度の高いプロダクトですので、今後の動きも把握して有効に使っていきましょう。

明日は@Satoh_Dさんです。