7

複数の AJAX ライブラリの使用について、どのような経験を共有できますか?

Prototype には便利な機能があり、jQuery や Yahoo ライブラリなどにも便利な機能があります。すべてのライブラリを含めて、それぞれから必要なものを使用することは可能ですか?それらは通常、名前空間などと一緒にうまく機能しますか?速度のために含めるライブラリのサイズ/数に実際的な制限はありますか、それとも無視できますか? 特にうまく連携するペア (Prototype/Scriptaculous など) またはそうでないペアはありますか?

4

7 に答える 7

9

これらすべてのライブラリを使用できますが、使用しないことを強くお勧めします。大量の JavaScript をダウンロードして実行すると、ブラウザが停止し、ユーザー エクスペリエンスが低下する可能性があります。ユーザーの観点からも、開発者の観点からも、いずれかを選択する方がはるかに優れています。コンテキスト/アーキテクチャの切り替えが少なくなり、維持するコードが少なくなります。

他の回答が言ったように、ほとんどは競合しません。

詳細については、Yahoo! のExceptional Performanceサイトを参照してください。

于 2008-09-15T05:14:40.053 に答える
4

Google AJAX Libraries APIを使用できます。jQuery、prototype、script.aculo.us、MooTools、dojo に共通の配布ネットワークとロード アーキテクチャを提供します。

于 2008-09-15T18:13:32.553 に答える
3

YUI はかなり厳密に名前空間化されているため、他のライブラリと衝突することはありません。

前述のように、競合モードなしで jQuery を実行できます。

プロトタイプ、他のライブラリとの相性が悪いという問題があります。これは、 Array. Protosafeは、これらの問題に対処しようとします。

Script.aculo.us は、Prototype の上にある単なるウィジェット ライブラリであるため、これら 2 つがうまく連携するはずです。

これはすべて、アプリケーションで YUI、jQuery、Prototype、Script.aculo.us を使用できることを意味しますが、単一のライブラリを使用すると、物事を維持するのがはるかに簡単になることに気付くかもしれません。

于 2008-09-15T05:04:47.490 に答える
2

私もjQueryの信奉者なので、他のものについての知識が不足していることを許してください...

jQuery を優れたものにしているのは、非競合モードです。たとえば、次のようにします。

$('#foobar').whatever();

非競合モードでは、次のようにします。

var jq = jQuery.noConflict();
jq('#foobar').whatever();

心配事が一つ減りました。プロトタイプも同様の機能を提供していると思いますし、Yahoo も同様です。

とにかく、jQuery をあまり支持して人々を怒らせたくはありませんが、どのライブラリを選択しても、必要なほとんどすべてのことを実行できると思います。特に、3 つの異なるライブラリを学習する必要がないことのメリットについて考えてみてください。

3つすべてが可能である必要があります。一番好きなものを選択して拡張します。:)

于 2008-09-13T09:25:28.813 に答える
1

現在、プロジェクトでjQueryとJavaScriptファイルのみのバージョンのMicrosofajaxツールキットを並べて使用しています。

私はjQueryを使用して、Microsoftのものを削除することになります。私はjQueryを初めて使用しますが、jQueryについて学ぶほど、夢中になります。

于 2008-09-13T07:21:01.140 に答える
1

最良の戦略は、複数のライブラリを使用しないことです。より多くのライブラリを問題に投入したくなるのは魅力的ですが、それは効率が悪く、エラーが発生しやすく、他の人がコードを保守するのが難しくなります。

ほとんどの場合、問題のドメインと、どのライブラリが問題の解決に最も役立つかを理解することで、複数のライブラリを使用することを避けることができるはずです。これらすべてのライブラリには無数のプラグインと拡張機能もあります。

たとえば、JQuery はすぐに使用できるクロスドメイン JSONP 呼び出しをサポートし、JQueryUI には優れたウィジェット ライブラリがありますが、Prototype にはありません。

$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { });

Prototype は非常に優れた OO サポートを備えており、DOM を簡単にトラバースできますが、ウィジェットやマッシュアップを作成するために必要なクロスドメイン機能の一部が欠けています。

var Foo =  Class.create({  
  initialize: function(name) {
    this.name = name;
  }   
});

var Bar = Class.create(Foo, {
  initialize: function($super, name)  {
     $super(name);
   }
});

Mootools には優れた効果、優れた OO サポート、非常に堅実なウィジェット、クロスドメイン リクエストがありますが (これは私の印象かもしれません)、開発コミュニティはグローバル コミュニティ (mootools 以外) との協調性や社交性に欠けています。コミュニティ (プロトタイプは以前はこの方法でした)。これは、主な開発者が米国外に住んでいるため、多くのカンファレンスに参加したり、より大きなコミュニティに参加したりできないことが原因である可能性があります。私はそれがあなたを完全に思いとどまらせることはできませんが、それは心に留めておくべきことです.

于 2008-10-10T17:22:27.210 に答える
0

Ruby on Rails はデフォルトでプロトタイプと Scriptaculous の両方を使用します。これは、両者の間にほとんど重複がないためです。それに加えて yui スニペットも使用しましたが、問題はありませんでした。ロード時間は問題ですが、ライブラリは通常キャッシュされているため、ロードされた最初のページのみです。

于 2008-09-13T09:50:29.923 に答える