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


169

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

それはこのように速くロードするためだけですか?



2
JSファイルへのホットリンクに関するGoogleのポリシーについては誰も言及していません(ホットリンクは通常は認められません)。そのため、Googleがこれに問題がないと言及しているURLと、それらがホストするライブラリについての詳細を以下に示します:code.google.com/apis/ajaxlibs/ documentation / index.html
Loftx


1
多くのユーザーは、別のサイトにアクセスしたときに既にGoogleまたはMicrosoftからjQueryをダウンロードしています。その結果、サイトにアクセスしたときにキャッシュから読み込まれ、読み込み時間が短縮されます
AminM

MicrosoftやGoogleは使用しないでください。MaxCDNを使用します。多くの可能性が高い最も重要なことは、ここにあるキャッシュヒット、取得するためにblog.jquery.com/2014/01/14/...
0fnt

回答:


393

それの訳は:

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

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

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

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

  5. これにより、ユーザーは地理的に近い応答を得ることができます。
    (Googleには世界中にサーバーがあり、レイテンシがさらに短縮されています。)

  6. (オプション)スクリプトは自動的に最新の状態に保たれます。
    (「パンツのそばを飛び回る」のが好きな場合は、常に最新バージョンのスクリプトを使用できます。これにより、セキュリティホールが修正される可能性がありますが、通常は問題が解決されます。)

10
私はあなたがますます多くの理由を考え出し続ける方法が大好きです。それだけでも+1。
Matchu

6. Googleのサーバーはおそらくあなたのサーバーより高速です。誰もがグーグルと同様に縮小することができるので、ポイント3が本当に関連しているとは思えません。+1の答えが正:)
Paul Creasey

1
jQueryはすでに縮小版を提供しているので、#3はおそらくgzipなどともっと関係があると思います。
Matchu

2
神みんなが私を攻撃してくれた、私はちょうど私のアイデアを送った、そして受け入れられた、LOL
Farshad

1
@farshad:次の回答ほど良くなかった受け入れられた回答を攻撃するのではなく、あなたを攻撃しません。これがコミュニティのQ&Aの仕組みです。次回は、回答をもう少し専門的にフォーマットし、質問に対する批判を有用で建設的な種類に限定してみてください。
Joel

58

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

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

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

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

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

また、MicrosoftはjQueryをCDNでホストしています。これは、GoogleがホストするjQueryの使用に匹敵するもう1つの選択肢です。


35
Googleのサーバーを使用して、ホストされているJavaScriptライブラリのSSLバージョンを提供できることを確認してください。 ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.jsが機能します。
Aaron Wagner

知っておくと、アーロン。ありがとう。
ランスフィッシャー

3
マイクロソフトについて言及した場合は+1。Googleが取得する方法芋あまりにも多くのクレジットを。
はいバリー

7
また、参考までに:のようなスキームの相対ハイパーリンクが src="//ajax.googleapis.com/..."機能します。
John Gietzen 2013

3
また、cndjsも検討してください
ブライス

29

TJ VanTollによるこの調査では、jQueryを他のスクリプトと連結する方が、CDNからロードするよりも優れていると確信しました。

その理由は、モバイルデバイスでのjQueryのフェッチに伴うレイテンシです。

「2012年の米国のモバイルネットワークでの平均RTT時間は344ミリ秒でした。その344ミリ秒は、すべてのHTTPリクエスト(平均的なWebページが93を生成する)だけでなく、すべてのDNSルックアップとTCP接続にも適用されます...平均的なRTTは改善していますが、現在のネットワークは物理学によって規定された理論上の限界の小さな要因の範囲内であるため、得られる追加の利益はわずかです。」

彼はまた、CDNを使用することでキャッシュのメリットが実際に得られない理由を示すSteve Soudersのこの投稿を引用しています。

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


3
これは、HTTP2およびSPDYには当てはまりません。今日、Cdnjs.comなどのCDNですべての外部リソースをホストでき、すべてのファイルが同じリクエストを使用してダウンロードされます。それは基本的に連結と同じです。
Ricardo Polo Jaramillo 2016

13

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

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


この答えは著しく過小評価されています。これは、上記の「プロ」で受け入れられた答えに等しく有効な「短所」を提供します。
Thomas Wana 2013年

@ user239558調査の作成者が実際にCDNを使用した場合、リンクは無効になりません;-)エラーは次のとおりです:[function.require]:ストリームを開けませんでした:/ homepages / 41 / d222999437にそのようなファイルまたはディレクトリはありません/htdocs/wp-content/themes/prose/functions.php
jplandrain

記事はよく考えられていません。最も一般的なjQueryライブラリは、全ページの約0.5%でGoogle CDNによって提供されると述べています。一般的なブラウジングセッション中に、私は大量のページ、特にそれをホストしているサイトなどのサイトへの小さなリンクにアクセスします。またはブログサイト。私は1日に30のユニークなサイトに簡単にアクセスします。1週間後、キャッシュされない可能性はかなり低くなります。すべてのユーザーについてキャッシュされるわけではありませんが、インターネットを頻繁に使用するユーザーは、合計で1を超える一意のドメインにアクセスするため、ほとんどの場合キャッシュされます。
アイディアカピ2014年

8

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


@tmthydvnprtに同意しません。質問は意見が分かれているので、そこに障害のほとんどがそもそもありますが、これは質問に答えます。
さようならStackExchange 2016

1
私も同じようにここに来ました。ユーザーが中国にいる場合、Googleからのほとんどすべてが優れたファイアウォールによってブロックされます。ただし、中国の多くの人々がVPNサービスを使用しているため、これはおそらく問題ではなく、おそらく中国市場をターゲットにしたくありません。
Justin

0

「なぜすべきか...」と「なぜすべきでないか...」に対するいくつかの良い答え

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

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.