jQuery で非推奨のメソッドを使用する場合、代替手段はありますか?
コードを変更する代わりに、バージョニングの問題をすべて解消する互換性のある移行ツールはありますか?
ここにあります :)
jQuery 移行プラグインが役立つかもしれません :)
このプラグインは非推奨の機能をサポートします。
このプラグインは移行のみを目的としていることに注意してください。非推奨の関数は、理由があって非推奨です!
jQuery Migrate Pluginは、バージョン 1.6.4 から 1.9+ へのアップグレードに非常に役立ちます。それ以下の場合は、自分でバグを処理する必要があります。プロジェクトを jQuery 1.4.2 から最新の jQuery にアップグレードしたとき、マイナー リリースごとにステップアップし、リリース ノート (1.5.2 など)を確認しました。jQuery 移行プラグインでサポートされないことがわかった問題の 1 つは、メソッドの追加と、.prop()
メソッドの新しい意味です.attr()
。
jQuery をアップグレードしたときの主な問題は、すべての.live()
イベントをに変更する.on()
ことでした。このプラグインは本当に役に立ちました。また、メソッドのサポートが終了したことも通知されますが、 modernizrなどのツールを使用し、代わりに機能検出メソッドを使用$.browser
する以外に実際の解決策はありません。
私がスクリプトを使用する方法は、ここからダウンロードして、ページに追加することでした。注: プラグインには、開発用と本番用の 2 つのバージョンがあります。どちらも減価償却の問題を解決しようとしますが、の開発では、コンソールを介してそれぞれについて通知します (それぞれが で始まりますJQMIGRATE
)。減価償却されたメソッドのサポートを求めているだけのように見える場合、私は製品版を使用しますが、最新の jQuery はいくつかの重大なパフォーマンスの改善を提供するため、減価償却されたコードをすべて置き換えることを真剣に試みる必要があります* - 最も顕著なのは jQuery 2 で、従来の IE (<=8) のサポートは削除されました。
*いくつかのテストが行われましたが、jQuery 1.8/1.9 はすべてのテストで勝っています
非推奨のメソッドを使用する以外に選択肢がない場合は、後ですべてのコードを書き直す必要がないように、呼び出しを関数でラップする必要がありますが、ラッパー自体が機能します。
function myRequiredFunctionality(params) {
// ... Convert params from domain logic to what jQuery expects ...
$.deprecatedCall( ... );
// ...
}
このように、アプリケーション コードは非推奨のものではなく関数のみを参照するmyRequiredFunctionality
ため、上記の関数を除いて、jQuery が非推奨の機能を置き換えた場合に備えて、コードをそのままにしておくことができます。
これは実際には、サードパーティのライブラリの使用法やプログラミング言語に当てはまります。使用するサードパーティ製のものから自分自身を隔離して、それに依存しないようにすることは常に良い考えです。