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

これについてどう思いますか?

コメント

  • シンプルなグーグル検索は答えを提供しました…

回答

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

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

可能性欠点:

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

コメント

  • 設定方法のリファレンスを投稿できますかローカルフォールバック?
  • Zistolenが以前に指摘したように、もう1つの利点は、Webサイトの他のアセットと並行してダウンロードされることです。それ以外の点ではすばらしい答えにもそれを追加することをお勧めします。
  • それは'少し誤解を招く恐れがあります。ブラウザは、ホストされている場所に関係なく、アセットを並行してダウンロードしますが、'同じホストから一度にダウンロードできるものの数には制限があります。
  • 正直なところ、ここにもそこにも'はありません。ファイルは並行してダウンロードできますが、'も追加です。 DNSルックアップ。さらに、これらのいずれかによって生じる時間の違いは、とにかく無視できます。
  • 十分に公平です。しかし、高速接続では、より多くの"パイプ"を使用できるため、合計読み込み時間が速くなることはありませんか?

回答

もう1つの欠点:

CDNを使用すると、CDNのオペレーターが追跡できますサイト訪問者。そのため、費用はかかりません。

コメント

  • 確実に追跡しますが、訪問者は追跡しません。両方ともjquery '独自のGoogle ' jquery CDNは、Cookieを設定または使用しない'ドメインでホストされています(これはおそらくパフォーマンスの最適化も)、'リクエストには実際に識別可能な情報がありません。 CDNプロバイダーは、IPアドレスと、ユーザーエージェントの文字列とリファラーに関するいくつかの統計についてのアイデアを得ることができます。これはおそらく価値がありますが、'それ自体は大きなプライバシーリスクではありません(これらのレコードが別のデータベースと関連付けられている場合(たとえば、同じ時間に配信されるパーソナライズされた広告)、おそらく追跡の手段)。
  • ほとんどの人が常にグーグルを使用して検索するため、データが他のデータベースと相関していることは当然のことと考えられます(グーグルの場合)。グーグルフォントについても同じことが言えます。最近、サーバー上でフォントをセルフホストしようとしましたが、それを行うのは非常に難しいことがわかりました。 Googleはそれを禁止していません(オープンソース)が、'すぐに使用できる方法でファイルを提供していません。自分でコンパイルすることもできます(ただし、 makefileなし)、または通常の配信に使用されるサーバーへのリクエストを偽造できます。どちらも技術者以外の人には実行できません。
  • おそらく。 '内部情報がないので、'はっきりとは言えません。 '確かに'バグがあり、大きなギャップがあります。ただし、インターネットを使用するほとんどの場所はNATであり、いくつかの場所では同様のマシン(おそらく同一のUA文字列)を使用しているかなりの数のユーザー-'どのリクエストが誰からのものかを知ることは不可能です。そしてもちろん、AdSenseとソーシャル共有ボタンを使用すると、ほとんどの場合、より信頼性の高い手段を使用できる可能性があるため、'気にしないと想像できます。フォントについては、'何度かダウンロードしたので、'これが難しいとはどういう意味かよくわかりませんか?
  • 明確にするために:私は'あなたが行うウェブサイトへのアクセスの大部分は、次の理由で大規模な統計収集者によって追跡される可能性があり、追跡されると想定しています。ソーシャル共有ボタン(かなり普及している)と広告、これらはほぼどこにでもあります。ですから、大量にキャッシュされたjsリクエストからの誤解を招く可能性のある情報がどれほど価値があるのか疑問に思います-私は'賭けていますが、それほどではないので、' CDNサービスのJSを使用している人を個人的に識別しようとするのは面倒です。
  • 思ったほどキャッシュされていません-Googleが好む方法でフォントを埋め込む場合は、fonts.googleapisへのCSSリンクを挿入します。 com、すべてのページビューはグーグルへの接続を開きます(Firebugでそれらを見ることができます)。 'キャッシュされているかどうかは関係ありません。ダウンロードについて:高品質のeot、woff、ttf、svg形式(Googleが提供するのと同じバージョン、外部コンバーターなし)でフォントをダウンロードできる場所を教えていただけますか?

回答

CDNを使用して、このように多くのサーバー間で依存関係を分割することは、本質的に、帯域幅と遅延の間のトレードオフを表します。パフォーマンスについて。

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

帯域幅が無限である場合は、シャーディングしないことをお勧めします。これは、最も遅いサービスと同じくらい遅いためです。レイテンシは完全に予測できないため、十分なサービスがあれば、たとえ高速であっても、ページの読み込みが遅くなるには、ちょっとした運が必要です。

レイテンシが0の場合、負荷を多くのサーバーに分散すると、多くのサービスを利用して帯域幅を改善できますrs(帯域幅の制限はサーバーではなくクライアントの近くにある可能性があるため、それほど役に立ちません)が、さらに重要なことに、キャッシュの効率を高めることで、送信されるデータの量をわずかに減らすことができます。

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

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

いずれの場合も、はるかに重要なのはあなたかどうかです。」最初に基本をカバーしました。適切なキャッシングヘッダー、連結、縮小、およびgzip(できれば高い圧縮率)。そして、これが核心です。「しない」場合、少なくともCDNはそうするので、勝ちます…

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

コメント

  • ちなみに、1つのリクエストを使用するだけでバイトシェービングが発生します。ヘッダーだけでもほぼ1kbになりますが、28kのペイロードでは'何もありません。gzipはより多くのコンテキストでより適切に機能し、さらに0.5kを節約します。TCP、DNS、HTTPSのオーバーヘッドはすべてKBをあちこちに簡単に追加できます。さらに悪いことに、RTT 'です。そのため'このような小さなファイルの場合、CDNはとしてではない

回答

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

コメント

  • しかし、ライブラリはページの読み込みにどのように影響しますか?
  • ページの読み込み中にローカルライブラリも読み込まれます-どちらの場合も、アセットのダウンロードは、(最新の)ブラウザがダウンロードをトリガーするコードスニペットを確認したときに開始されます。これは通常、ドキュメント全体がダウンロードされる前に行われます。 。例については、この Firebugのスクリーンショットを参照してください

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です