web-dev-qa-db-ja.com

jQueryにGoogleのCDNを使用する必要があるのはなぜですか?

これは一部の人には明らかかもしれませんが、私は疑問に思っています。なぜ、サイトのHost jQueryを Googleのサーバー に依存する必要があるのでしょうか。

これは、この方法で高速にロードされるためだけですか?

167
Yvette

それの訳は:

  1. 利用可能な並列処理が増加します。
    (ほとんどのブラウザは、任意のサイトから一度に3つまたは4つのファイルのみをダウンロードします。)

  2. キャッシュヒットが発生する可能性が高くなります。
    (このプラクティスに従うサイトが増えるにつれて、すでに多くのユーザーがファイルを準備しています。

  3. ペイロードが可能な限り小さくなるようにします。
    (Googleはファイルをさまざまな形式(GZIPやDEFLATEなど)で事前に圧縮できます。これにより、ダウンロードにかかる時間が非常に短くなります。飛ぶ。)

  4. サーバーが使用する帯域幅の量を減らします。
    (Googleは基本的に無料の帯域幅を提供しています。)

  5. ユーザーが地理的に近い応答を取得することを保証します。
    (Googleには世界中にサーバーがあり、待ち時間がさらに短縮されています。)

  6. (オプション)スクリプトを自動的に最新の状態に保ちます。
    (「ズボンの座席を飛ぶ」のが好きな人は、いつでもlatestバージョンのスクリプトを使用できます。これらはセキュリティホールを修正する可能性がありますが、通常は単にあなたのものを壊します。
388
John Gietzen

GoogleのCDNからjQueryを使用するしない場合があるいくつかのシナリオがあります。

  1. Webサーバーがクライアントと同じネットワークでホストされているイントラネットアプリケーションを構築する場合GoogleのCDN jQueryを使用している場合、ローカルネットワーク上のWebサーバーではなく、インターネットへの呼び出し。これにより、組織の帯域幅が増加し、速度が低下します。

  2. アプリケーションをオフラインで実行したい場合。 (かなり最初の問題にリンクしています)開発環境で作業する必要がある場合(たとえば Bower で管理)、インターネットに接続せずにアプリケーションを動作させる必要がある場合があります(例:電車の中で:)

  3. カスタマイズする必要がある場合。たとえば、特定のモジュールのみを使用するために Grunt を使用してライブラリをビルドする場合、または AMD名 を設定する場合

  4. jQueryを必要とするSSLを介してページを提供する場合セキュリティの問題や警告を回避するために、SSLを介してJavaScriptとページを提供する必要があります。

また、 MicrosoftホストjQuery はCDNにあります。これは、GoogleがホストするjQueryの使用に匹敵する別の選択肢です。

56
Lance Fisher

この study by TJ VanToll は、jQueryをCDNからロードするよりも、他のスクリプトと連結する方が良いと確信しました。

その理由は、モバイルデバイスでのjQueryの取得に伴う遅延です。

「2012年、米国のモバイルネットワークでの平均RTT時間は344ミリ秒でした。この344ミリ秒は、すべてのHTTP要求(平均的なWebページで93になりました)だけでなく、すべてのDNSルックアップとTCP接続...平均RTTは向上していますが、現在のネットワークは物理学によって決定される理論的限界の小さな要素内にあるため、わずかな追加のゲインしかありません。」

また、彼は この投稿 Steve Soudersから、あなたが実際にいる理由を示していますキャッシュのメリットを得る可能性は低い CDNを使用することから:

「CDNプロバイダー、jQueryバージョン、およびプロトコルの使用(httpとhttps)の断片化により、CDNキャッシュヒットが発生する可能性は驚くほど低く、外部ドメインからのダウンロードは1つではなく3つ実行する可能性がありますラウンドトリップ(DNSルックアップ、TCP接続、およびHTTP GET)。 "

28
cantera

最大の利点はキャッシングです。理論は、訪問者がJavaScriptライブラリをロードしているサイト(たとえばGoogle CDNからjQueryなど)にアクセスした場合、Webサイトにアクセスすると、ライブラリは既にそのユーザーのブラウザキャッシュにあり、再度ダウンロードする必要がないというものです。これは理論的には素晴らしいですね。

ここと他の場所で共有される利点はすべて理論的です。 CDNを使用して、それが期待されるパフォーマンスの利点を提供するかどうかの詳細な分析に出会いました。 http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits

12
Matt Moor

多くの人が考えていないように、GoogleにjQueryをホストさせない主な理由は、中国にいる場合はダウンロードしないことです。 Google CDNがホストする他の多くのスクリプト、フォントなどと一緒にブロックされます。中国の視聴者にリーチする必要がある場合は、常に自分のサーバーでホストされているフォールバックを使用するのが最善です。 中国でブロックされたGoogle APIS

7
Joshua Maddox

ここで、「なぜすべきか...」と「なぜすべきではない...」に対するいくつかの良い答えがあります。

CDNからjQueryをロードしたい場合は、Googleに代替のリストを追加したいだけです。

しかし、要約すると、基本的にWebサイト/アプリケーションの全体的なパフォーマンスを改善しています。

0
EdwardM

Service WorkerでCDNを使用すると、コードを更新するたびにではなく、クライアントの有効期間に1回CDNをダウンロードできます。

0