web-dev-qa-db-ja.com

Google jQueryがホストするライブラリ-何か良いことはありますか?

Google jQueryがホストするライブラリを使用することで、実際に触れるメリットはありますか?または、サーバーにダウンロードするだけですか?

これについてのあなたの意見は何ですか?

14
Leo

Googleなどの外部CDNを使用してjQueryをホストすることには、2つの大きな利点があります。

  1. 高速です。それは確かにあなたのサイトよりも速く、おそらく自分でセットアップしたCDNよりも速いでしょう。
  2. すでにキャッシュされている可能性があります。多くのサイトはGoogleのCDNでもjQueryを参照しているため、あなたのサイトの前にjQueryを使用して別のサイトにアクセスした場合、ダウンロードする必要さえありません。

潜在的な欠点:

  1. ドメインはブロックされる可能性があります(これは中国のような場所では非常に一般的です)。これを解決するには、ローカルフォールバック( 方法についてはこちらを参照 )を使用します。
  2. バージョン番号のfragmentationは非常に高いため、サイトの訪問者は多くの異なるバージョンがキャッシュされているかもしれませんが、参照したバージョンはキャッシュされていません( 最近の統計についてはこちらをご覧ください )。ただし、これは最初のページの読み込み時の問題です。
18
DisgruntledGoat

別の欠点:

CDNを使用すると、CDNのオペレーターはサイト訪問者を追跡できます。それが彼らがお金を払わない理由です。

11
Jost

このようにCDNを使用して本質的にこのような多くのサーバーの依存関係を分割することは、帯域幅と待機時間の間のトレードオフを表します。

ちなみに、この代替案は単にローカルでホストするのではなく、別のローカルリクエストと連結することを想定しています。通常、可能な場合に連結しない理由はありません。

帯域幅が無限の場合は、シャーディングではなくベストです。なぜなら、最も遅いサービスと同じくらい遅いからです-レイテンシーは完全に予測可能ではないため、十分なサービスで、たとえ高速であっても、ほんの少し必要です遅いページの読み込みを引き起こす不運。

遅延が0の場合、多くのサーバーに負荷を分散させることで、多くのサーバーを利用することで帯域幅を改善できます(帯域幅の制限はサーバーではなくクライアントの近くにある可能性が高いため、あまり役に立ちません)、より重要なことに、送信されるデータの量を減らすことができますキャッシングの効果を少し高めることにより。

それはあなたのシナリオに依存しますが、スクリプトが非常に巨大でない限り(jqueryはそうではありません)、一般的にレイテンシは帯域幅よりも問題になると予想しています。その時点では、通常、連結されたローカルファイルの一部としてjqueryをホストする方が高速です。

ローカルでホストしない理由は、たとえば帯域幅に料金を支払う場合、または低速サーバーでホストしている場合(クライアントへの接続がクライアント側ではなく側でボトルネックになっている)、またはクライアントの帯域幅が本当に低いことがわかっている場合(ローエンドDSLまたはモデム)たとえば、モバイルでは帯域幅の問題よりも待ち時間の問題が発生する傾向があります)、またはクライアントが帯域幅の料金を支払う(モバイルなど)ため、スクリプトが重要な部分であるため、マイナーキャッシュが重要になります(可能性は低い)。

いずれの場合でも、基本を最初に説明したかどうかは、はるかに重要です。適切なキャッシュヘッダー、連結、縮小、およびgzip圧縮(圧縮率が高いことが望ましい)。そして、ここに核心があります:あなたがDO N'Tそれをすれば、少なくともCDNはそうするので、それは勝ちです...

TL; DR:連結+縮小+ gzipping +キャッシュをすべてカバーしている場合、小さなスクリプトを提供ローカルではCDNよりも高速です CDNのパフォーマンスは向上していますが、最初のページの読み込みではなく、宿題をした場合にのみ、このルールには必ず例外があります。

3
Eamon Nerbonne

GoogleのjQueryホストライブラリを使用すると、ページの読み込みが高速化されます。実際、ライブラリはページの読み込み後ではなく、同時に読み込まれます。

1
Zistoloen