スポンサーリンク

jQueryのバージョン 1.8 での変更点のまとめ。1.7と違い,ライセンスがMITに一本化,AjaxにDeferredを導入。1.9への大変化の前ぶれリリース

JavaScriptライブラリ「jQuery」の,バージョン 1.8 での変更点のまとめ。


jQuery 1.9から先は大幅にAPIが異なるので,変化前の jQuery 1.8を使う人が多い。

昔からあったプラグイン類も,1.9では動かないので1.8が必要。

そのためレガシーWebサイトの保守作業には,
今回紹介する jQuery 1.8 が役立つだろう。


1.8の特徴のまとめ:

  • ライセンスが変更され,MIT+GPLのデュアルではなく,MIT一本になった。
  • CSSのベンダプレフィックスを自動補完。
  • AjaxのレスポンスがDeferredで実装されるようになった。
  • ビルドツールでカスタムビルドが可能になった。
  • セレクタエンジンが大幅に高速化。
  • 前バージョンから削除されたものはあまりない。


jQuery リリースの歴史:

  • 1.7リリース:2011年11月 →こちら
  • 1.8リリース:2012年8月 →今回紹介するバージョンです。
  • 1.9リリース:2013年1月 →こちら
  • 2.0と1.10リリース:2013年5月 →こちら
  • 2.1と1.11リリース:2014年1月 →こちら


バージョン 1.8 を使いこなすための全機能チートシート:

jQuery 1.8 API Cheat Sheet
http://jqapi.ru/


1.8での変更点に特化したリファレンスマニュアル:

jQuery Version 1.8 - jQuery API 日本語リファレンス
http://alphasis.info/jquery-api/versi...

  • 「jQuery Version 1.8」で追加された API 、メソッド等。


Version 1.8 | jQuery API Documentation
https://api.jquery.com/category/versi...

  • Aspects of the API that were changed in the corresponding version of jQuery. API changes in jQuery 1.8.0

1.7 と 1.8 の違いを解説

1.8での変更点を列挙して報告:

jQuery 1.8の更新内容をまとめたよ。 | Ginpen.com
http://ginpen.com/2012/08/14/jquery-1-8/

  • 2012年。jQuery 1.8がリリースされましたね。
  • CSSのベンダープレフィックスを自動でほぼ補完してくれるようになったのが目玉機能。
    • セレクターエンジンSizzleとアニメーション関係を全面的に書き換えた事が大きそう
  • 1.8の主な変更点として,
    • CSSのベンダープレフィックスを自動付加に加え,
    • モジュール化。
    • アニメーションの処理を刷新。
    • XSS対策。


jQuery 1.8 になって CSSベンダープレフィックスが自動で追加されるようになったみたいなので試してみる | BRISK | 東京都江東区のホームページ制作・Web制作
http://b-risk.jp/blog/2012/10/jquery-...

  • おもな改善点
    • セレクタエンジン「Sizzle」の高速化、CSSベンダープレフィックスの自動化、モジュール化機能、アニメーション処理刷新、といったところ


briccolog » jQuery1.8の変更点
http://www.bricoleur.co.jp/blog/archi...

  • Sizzleの再構築。
    • jQueryのセレクタエンジンをリライトしてかつて無いほどに早くなった。
  • 160以上のバグが解消: Sizzleやアニメーション、CSSのポジション関係などかなりのバグを解消。
  • 今回の変更で削除されたものはほんのわずか。
  • jQuery1.9で削除される予定への対応にユーザーが充分な時間を持てるようにした。


OSS上の重要な動きとして,1.8からはライセンスが変更:

みんな大好きjQueryのライセンスを地道にチェックしてみた | オープンソース・ライセンスの談話室
http://www.catch.jp/oss-license/2013/...

  • 2012年9月にリリースされた、jQueryバージョン1.8からMITライセンスの単独ライセンスに変更されています。
  • ただし、現在もバージョン1.7.2以前であれば、MITライセンスとGPL2のデュアルライセンスが適用されます。


jQueryがライセンスを変更 - GPLから手を引く | マイナビニュース
http://news.mynavi.jp/news/2012/09/14...

  • jQuery財団は2012年の9月10日、jQueryに採用してきたライセンスの変更を発表
  • これまでMITラインセスとGNU GPL(General Public License)のデュアルライセンスのもと提供されていた。
    • ライセンスをMITに一本化することで管理が容易になり、デュアルライセンスポリシーによる混乱を避けることができる


jQuery 1.8 released with an interesting license change | Trisquel GNU/Linux - Run free!
http://trisquel.info/en/forum/jquery-...

  • jQuery 1.7.2 and earlier were dual-licensed under a GPLv2 and MIT
    • but 1.8 was released just under an MIT license.


1.8から,ビルドツールによるカスタムビルドが可能になっている。

そのコード、本当にjQueryが必要ですか?ネイティブ関数の代替Tips集 | ゆっくりと…
http://tokkono.cute.coocan.jp/blog/sl...

  • jQuery 1.8 からはカスタムビルドが可能


gruntを利用したMJLのカスタムビルドのテスト | Another Sky
http://www.anothersky.pw/skyward/arch...

  • jQueryの1.8ではついにモジュール化
    • grunt(JavaScriptを利用したプロジェクト向けのコマンドラインビルドツール)を利用
    • 不必要なモジュールを除外したカスタムビルド版の生成が行えるようになりました

1.8からの記法の大きな違いは,AjaxがDeferredで実装されていること

1.7までと比べると
DeferredやAjaxの挙動が少し変わっており,
従来のAPIで動かないトラブルがよくある。

jQuery 1.8でDeferred.thenの挙動が変わった
http://less.carbonfairy.org/post/3813...

  • JavaScriptを書いていて楽しいのがDeferredの処理。
    • Deferredは、 jQuery 1.8から Deferred.thenの挙動がDeferred.pipeと全く同じになりました。
    • このせいで非同期処理が動かなくて困る。
    • 具体的に困るのはthenの後にdone、failを続けている場合にコールバック引数が渡らなくなること。


jQuery.ajax()のまとめ: 小粋空間
http://www.koikikukan.com/archives/20...

  • jQuery 1.8以降は「async: false」の記述は非推奨となっており、「you must use the complete/success/error callbacks」と書かれています。


特に 1.8 からは,AjaxのレスポンスがDeferredで実装されている。

Deferred による Ajax - 新しいメソッドの利用 - jQuery 入門
http://jquery.keicode.com/basics/ajax...

  • jQuery 1.8 から Ajax は Deferred オブジェクトを利用して実装されるように変わった
    • それに伴って従来の非同期コールバックメソッドである success, error, complete は deprecated というステータスになりました。


jQuery 1.7、1.8 で非推奨になったイベントのメソッドと Ajax 関連のメソッドとイベント - Sarabande.jp
http://blog.sarabande.jp/post/3031974...

  • jQuery 1.5 で Deferred オブジェクトが導入され、Ajaxのコールバックは done / fail / always のメソッドチェーンで追加できるようになりました。
    • jQuery 1.8 で非推奨になったメソッド群を使った書き方は,success, error, complete を使ったメソッドチェーン。


jQueryのよく使いそうなAjax関係のAPIをまとめてみました | スターフィールド株式会社
http://sterfield.co.jp/designer/jquer...

  • 以前はsuccess, error, completeというオプションで処理を行っていた
  • 現在はsuccess→.done()、error→.fail()、complete→.always() というjQuery.Deferredの記述形式を用いたものに変化しています。


ただし,1.8 でも以前のAPIはいちおう使える。

もう削除の直前の段階なので,Deferred / Promiseインタフェースを使った新APIで書いたほうがよい。

jquery - what is difference between success and .done() method of $.ajax - Stack Overflow
http://stackoverflow.com/questions/88...

  • In jQuery 1.8 on the jqXHR object (returned by $.ajax) success is being replaced with done, error with fail and complete with always.
  • However you should still be able to initialise the AJAX request with the current syntax.(以前の記法もまだ使える)


jQuery AJAX | tutorials.jenkov.com
http://tutorials.jenkov.com/jquery/aj...

  • jQuery AJAX Before Version 1.8.0
    • Before version 1.8.0 of jQuery the object returned from the jQuery $.ajax() function did not contain the done(), fail() and always() functions.
    • Instead, these functions were called success(), error() and complete().
  • jQuery AJAX After Version 1.8.0
    • From jQuery 1.8.0 the $.ajax() function returns a jqXHR object which implements the promise interface (done(), fail(), always() etc.) instead of of the success(), error() and complete() functions.
    • The success(), error() and complete() functions are now deprecated. The promise interface is described in my text about jQuery deferred objects.


AJAX before jQuery 1.8 and After
http://www.sitepoint.com/ajax-jquery-...

  • Don’t forget .success() and .error() still supported in jQuery 1.9.1 so it won’t break your old code and plugins you use.

1.8内でのマイナーバージョンによる違いは軽微

1.8へのメジャーバージョンアップ以降,
マイナーバージョンが何度か上がっている。

これはバグ修正がほとんどなので,機能的な違いはない。

jQuery 1.8.0 〜 1.8.3 での変更箇所の自分なりのまとめ | 私的なjQuery
http://myjquery.blog.fc2.com/blog-ent...

  • 1.8.1 と 1.8.2 、1.8.3は ほぼバグ修正メインなので、 1.8.0 だけのまとめとあまり違いありません。
  • .css()や.animate()等で CSS プロパティを使う時、いちいちベンダープレフィックス( "-moz-"とか"-ms-"とか "-webkit-"とか)を 付けなくても、必要な時に自動で付けてくれるようになりました。