2010-01-15

jQuery 1.4 の互換性について

この記事について


jQueryチームのみなさん、リリースおめでとうございます。毎日とても役に立っています。

公式サイトを見に行くと、パフォーマンス改善が素晴らしいとありますが、あまりパフォーマンスで困っている人はいないと思うので、一番欲しい情報はversion 1.3から乗り換える際の互換性についてではないでしょうか。

後方互換性を失う変更の一部


$.ajaxで、複数の値を持つパラメータ(data:{a:[1,2,3]} など)のシリアライズ方法の変更。
$() (引数なし) を$(document)と解釈するのを止めた。
addは単なるaddではなく、同じものが複数入らないように、mergeするようになった。
$.ajaxで、dataType無指定の時の自動判断に、Content-Typeを尊重するコードが追加された。

自分が困ったこと


jQuery.ajaxで、dataType無指定の自動判断のまま1.3.2までなんとか動いていたところが、Content-Type: text/javascriptのJSONを受け取っていたため、1.4からIE8でセミコロンがありませんという変なエラーが出るようになった。

対策:dataType: "json"とする。また、Content-Type: application/jsonで吐き出すようにする。詳しくは、ソースコードを"httpData:"で検索

リンク


Backwards-Incompatible Changes
Version 1.4 - jQuery API 新機能と変更点についての公式ドキュメント
14 Days of jQuery リリース記念ブログ。