2

私はまだ経験豊富な開発者ではないので、あまりにもうるさいように聞こえたり、十分に明確でない場合はご容赦ください。できるだけ明確にしようと思います。洞察に欠けている情報がある場合は、お知らせください。できるだけ早くフォローアップします。

それで、

私が働いている会社には、異なるjQueryバージョン(1.2と1.4)で実行されている2種類のページがあります。さらに、company.com、support.company.com、contact.company.comなどのいくつかの異なるドメインを介してサイトを運営しています。

company.comはjQuery1.4(「$」でのみjQueryにアクセスできます)で実行され、もう一方は1.2(jQueryは「$j」または「jQuery」)で実行されます。

価格、画像、説明など、製品から多くの情報を取得するAPIがあります。このAPIは、1.4バージョンのjQueryを使用してページで呼び出すことができます。このAPIを介して情報を取得できない他のドメイン。

ここでは、javascriptコードとjqueryコードのみを処理して機能させることができます。バックエンドにアクセスできません。

だから私の質問は、APIをページ上の両方の種類の環境から機能させるために必要なアプローチは何ですか?最も古いバージョンを上書きできますか?これはクロスドメインの問題ですか?この問題を解決するために私がここで探しているのはどのような考えですか?

私は本当にはっきりしていることを願っています。そうでない場合は、お知らせください。明確にするよう努めます。:)

前もって感謝します!

4

2 に答える 2

1

私の知る限り、jQueryは両方とも同じ$変数を使用するため、2回ロードされると自分自身を上書きします。一方を回って別の名前空間に割り当て、もう一方をそのままにする方法があります。

jQueryには古いAPIとの下位互換性があると思います。サイトのAPIをチェックして、それらのメソッドがまだ存在するかどうかを確認してください。最近、一部のメソッドが非推奨になりました。それ以外の場合は、最新のjQueryを使用してAPIを再構築する必要があります。それほど難しいことではありませんが、基本的な方法については何も変わっていません。最新の方法(1.4より前にはまだ存在していなかった方法)を使用すると、パフォーマンスが向上する場合もあります。

また、上級管理職に、2つのAPIを作成するよりも優れた戦略を考える必要があることを伝えます。APIを保守可能でスケーラブルに計画しないことの影響が現れ始めています。

于 2012-04-15T18:38:18.643 に答える
1

試す:

<!-- load and register jQuery 1.2 -->
<script src='jquery-1.2.js'></script>
<script>
    var jq12 = jQuery.noConflict();
</script>

<!-- load and register jQuery 1.4 -->
<script src='jquery-1.4.js'></script>
<script>
    var jq14 = jQuery.noConflict();
</script>

jq12またはを使用して、またはを使用jq14せずにjQueryを呼び出す必要がある$場合jQuery

jq12('element').click(function() {
    // Do things
})

jq14('element').click(function() {
    // Do things
})
于 2012-04-15T18:45:28.263 に答える