mootoolsを特定の目的で使用し、Prototype &script.aculo.us
を別の目的で使用したいが、同じサイト内で使用したい場合があります。他にも追加することを検討しましたが、競合が心配でした。誰でも経験がありますか、それとも私は自分にとって物事を複雑にしすぎていますか?
7 に答える
あなたが本当にこれをやりたいのであれば、あまり多くの問題なしにできるでしょう - 主なライブラリは、いくつかの注目すべき例外を除いて、独自の名前空間内でうまく動作するように設計されています - Using JQuery with Other Frameworksから:
jQuery ライブラリとその実質的にすべてのプラグインは、jQuery 名前空間内に制約されています。原則として、「グローバル」オブジェクトは jQuery 名前空間にも格納されるため、jQuery と他のライブラリ (Prototype、MooTools、YUI など) との間で衝突が発生することはありません。
ただし、注意点が 1 つあります。デフォルトでは、jQuery は「jQuery」のショートカットとして「$」を使用しますが、これはオーバーライドできます。
はい、それはできますが、メンテナンスの頭痛の種を自分自身で作成する可能性があります。フレームワーク機能間の微妙な違いは、今日あなたには明らかかもしれませんが、6 か月後に戻ってくると、まったく別のものになる可能性があります。話!そのため、できるだけシンプルに保ち、コードベースに含めるフレームワークの数をできるだけ少なくすることをお勧めします (できれば 1 つです!)。
私の知る限り、一般的なフレームワークはすべて、他のフレームワークと組み合わせるように設計されています。それらを組み合わせることはそれほど問題ではないと思います。ただし、帯域幅が必要な場合だけにそれらを組み合わせることはお勧めしません。遅いサイト エクスペリエンスは、より複雑な開発エクスペリエンスよりも許されません。
最近の質問: jQuery & Prototype Conflict
Prototype.js ライブラリは、非常に攻撃的で、他の多くのライブラリ/コードと競合していました。ただ、私の知る限りでは、Element オブジェクトの置き換えなど、かなりハードコアなスタッフを最近断念したようです。
アプリケーションごとに 1 つのフレームワークを使用することをお勧めします。そうしないと、クライアントが JavaScript のダウンロードに時間と帯域幅を使いすぎてしまいます。
そうは言っても、Prototype と JQuery は連携できます。情報は JQuery Web サイトにあります。
私の経験から言えば、一部の JavaScript ライブラリは、相互に競合するよりも、ブラウザと競合していると言えます。私が言いたいのは、次のことです: 一部のライブラリに対して書かれたコードは、ブラウザ DOM に対して書かれたコードとうまく共存できない場合があります。
私の Framework Scanner ツールは、ライブラリ間の JS/CSS の競合を見つけるのに役立ちます。
複数のフレームワークのオーバーヘッドを追加することなく、必要な機能を複製できるように、1 つ (または複数!) のフレームワークを十分に学習することをお勧めします。
クライアントにプッシュするコードが増えるほど、すべてが遅くなることを覚えておいてください。