回答:
Googleなどの外部CDNを使用してjQueryをホストすることには、2つの大きな利点があります。
潜在的な欠点:
別の欠点:
CDNを使用すると、CDNのオペレーターはサイト訪問者を追跡できます。それが彼らにお金がかからない理由です。
CDNを使用して本質的にこのような多くのサーバー間で依存関係を分割することは、パフォーマンスのみに注意を払うことを前提として、帯域幅と待機時間のトレードオフを表します。
ちなみに、代替案は単にローカルでホストするのではなく、別のローカルリクエストと連結することを想定しています。通常、可能な場合に連結しない理由はありません。
帯域幅が無限の場合は、シャーディングではなくベストです。なぜなら、最も遅いサービスと同じくらい遅くなるからです-十分なサービスでレイテンシが完全に予測できないため、たとえ高速であっても、ほんの少し必要です遅いページの読み込みを引き起こす不運。
遅延が0の場合、負荷を多くのサーバーに分散させると、多くのサーバーを使用して帯域幅を改善できます(帯域幅の制限はサーバーではなくクライアントの近くにある可能性が高いため、あまり役に立ちません)。キャッシングの効果を少し高めることにより。
それはあなたのシナリオに依存しますが、スクリプトが非常に巨大でない限り(jqueryはそうではありません)、一般的にレイテンシは帯域幅よりも問題になると予想しています。その時点では、通常、連結されたローカルファイルの一部としてjqueryをホストする方が高速です。
ローカルでホストしない理由は、たとえば帯域幅の支払い、または低速サーバーでホストしている場合(クライアントへの接続がクライアントではなく側でボトルネックになっている)、またはクライアントの帯域幅が本当に低いことを知っている場合です。 (たとえば、ローエンドのDSLまたはモデムは、モバイルでは帯域幅の問題よりも待ち時間の問題が多い傾向があります)、またはクライアントが帯域幅の支払いをする場合(例:モバイル)、スクリプトはその重要な部分であり、マイナーなキャッシュが重要です)。
いずれの場合でも、基本を最初に説明したかどうかがはるかに重要になります。適切なキャッシュヘッダー、連結、縮小、およびgzip圧縮(圧縮率が高いことが望ましい)。そして、ここに核心があります:あなたがそうしないならば、少なくともCDNはそうするでしょう、それで勝利です...
TL; DR:連結+縮小+ gzipping +キャッシングをすべてカバーしている場合、CDNのパフォーマンスは向上しますが、小さなスクリプトをローカルで提供する方がCDNよりも高速です -ただし、最初のページではなく宿題をした場合のみロードし、このルールには間違いなく例外があります。
GoogleのjQueryホストライブラリを使用すると、ページの読み込みが高速化されます。実際、ライブラリはページの読み込み後ではなく、同時に読み込まれます。