Re:jquery 1.xと2.x の違い、さらに動作を音速にするための設定

ネタ元 : jquery 1.xと2.x の違い、さらに動作を音速にするための設定

ちょっとツッコミどころが多いので突っ込んでおきます。

使い分ける

<!--[if lt IE 9]>
    <script src="jquery-1.9.1.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
    <script src="jquery-2.0.0.js"></script>
    <script src="js/jquery-migrate-1.2.1.min.js"></script>
<!-->![endif]-->

jQuery 2.xのベータ版が公開されていた際にはjQueryは条件付きコメントで読み込むことを想定していました(上記コードはその時のオフィシャルのコードにmigrateを追加したものですね)。ただし、正式版リリースのタイミングで条件付きコメントはやめてねとアナウンスしています。ブラウザ毎に読み込むライブラリを変えるとデバッグの工数が増大するんですよ。

IE8以下が必要な場合はjQuery 1.x系の最新を読み込み、IE8以下が必要ない場合はjQuery 2.x系を読み込むのがよいでしょう。この程度のファイルサイズで重いとかいう人はjQuery使わない方法を覚えるのをおすすめします。

また、jQuery Migrateの使い方も間違ってます。jQuery MigrateはjQuery 1.9で削除されたいくつかのメソッドを保管するためのライブラリです。それなのに上記のようにjQuery 2.0.0の場合のみ使ってjQuery 1.9.1の場合は使わないとかするとIE8以下とそれ以外で挙動が全く変わってくるのでデバッグが大変です。そもそも、jQuery Migrateのバグ等でハマることも考えられるのでjQuery Migrateは使わないほうがよいと考えてます。

動かないプラグインはどうするん?

<script type="text/javascript" src="jquery-1.9.0.js"></script>
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">
var $ = jQuery = jQuery.noConflict().extend(true, $);
</script>

プラグインが動かないぐらいでjQuery2本も読み込むのとか、本当に最終的な対応方法です。基本的には絶対やってはいけません。後任の人が悲鳴を上げるだけです。音速どころか鈍足になるだけです。

対応しているプラグインを探すとか、修正して最新版でも使えるようにするとかして利用しましょう。

ちなみに、jQuery 1.9でごっそりメソッドが削除されたので、jQuery 1.8.3が比較的多くのプラグインがちゃんと動作するバージョンになるのでjQuery 1.8.3を利用するというのも選択肢のひとつと思います。

関連エントリー

jQuery基礎文法最速マスター
jQueryを良くする25のTIPS
14のjQueryベストプラクティス
8のjQueryのすごいTIPS
jQueryのコードを良くする5つのTIPS

スポンサードリンク

«「やさしくはじめるWebデザイナーのためのjQueryの学校」3刷 | メイン | [書評]Web制作者のためのCSS設計の教科書»