web-dev-qa-db-ja.com

jQueryまたはGoogle CDN用のMicrosoft CDN?

実際には、jqueryファイルまたはそのJavaScriptファイルへのリンクに使用するCDNが重要ですか。一方が他方よりも潜在的に高速ですか?どのcdnを使用することになりますか?マイクロソフト、ヤフー、およびグーグルにはすべてCDNがあります。

186
Xaisoft

コメントに基づいて更新:

ショートバージョン:それほど重要ではありませんが、ホストするものに依存する場合があります。彼らはすべて異なるものをホストします:GoogleはjQueryを検証しません.Validate、MicrosoftはjQuery-UIをホストしませんでした、2016年以来!!、MicrosoftはScriptResource.axdとより簡単な統合(例- ASP.Net 4.0を使用したScriptManager )。

重要な注意:イントラネットアプリケーションを構築している場合は、CDNアプローチを避けてください。誰がホストしているかは関係ありません。veryオーバーロードされたサーバーを内部で使用している場合を除き、CDNはローカルの100mb/1GBを超えるパフォーマンスを提供しません。イーサネットはします。厳密に内部アプリケーションにCDNを使用する場合、パフォーマンスを低下させますキャッシュ有効期限ヘッダーを正しく設定する イントラネットのみのシナリオに存在するCDNを無視します。

どちらかがブロックされる可能性はほぼ等しいと思われ、ほとんどゼロです。私はこれが真実ではない契約に取り組んできましたが、それは例外のようです。また、この回答の最初の投稿、それを取り巻くコンテキストが大幅に変更されて以来、Microsoft CDNは大きな進歩を遂げました。

現在私が取り組んでいるプロジェクトでは、ソリューションに最適な両方のCDNを使用しています。これにはいくつかの要因が関係します。 古いブラウザを持つユーザーは、おそらくドメインごとに2つの同時リクエストを行っている可能性があります HTTP仕様で推奨されているようにパイプライン化をサポート (現在のブラウザーごと)のまったく新しいものを実行している人にとってはこれは問題ではありませんが、別の要因に基づいて、少なくともJavascriptに関してはこの制限も取り除いています。

私たちが使用しているGoogleのCDN:

私たちが使用しているMicrosoftのCDN:

私たちのサーバー:

  • Combined.js?v = 2.2.0.6190(Major.Minor.Iteration.Changeset)

ビルドプロセスの一部はすべてのカスタムjavascriptを結合および縮小するため、ビルドに応じてこれらのスクリプトのリリースまたはデバッグ(非縮小)バージョンを含むカスタムスクリプトマネージャーを介してこれを行います。 GoogleはjQuery検証パッケージをホストしないため、これはマイナス面になる可能性があります。 MVCは2.0リリースでこれを含めて使用しているため、すべてのニーズについてMicrosoftのCDNに完全に頼ることができます およびScriptManagerを介して自動的にすべて

行われる他の唯一の引数はDNS時間です。これには、ページの読み込み速度の点でコストがかかります。 平均:使用頻度が高いため(長すぎる)単にajax.googleapis.comは、ローカルDNSサーバーが理由で、ajax.Microsoft.comよりも早くDNSから返される可能性が高いリクエストを受け取る可能性が高かった(これはエリアペナルティの最初のユーザーです)。これはveryささいなことであり、パフォーマンスが非常に重要な場合(ミリ秒まで)にのみ考慮すべきです。
(はい:この点は両方のCDNを使用することに反しますが、この場合、DNS時間は発生するjavascript/blockingの待機時間によってはるかに影が薄くなります)

最後に、まだ見ていない場合、最も優れたツールの1つは Firebug と、そのためのプラグイン: Page Speed および YSlow 。 CDNを使用しているのに、キャッシュヘッダーがないためにページが毎回画像を要求している場合は、低品質のフルーツが欠けています。 FirebugのNetパネルを使用すると、ページの読み込み時間の内訳をすばやく確認できます。また、Page Speed/YSlowを使用すると、役立つ優れた提案を提供できます。

151
Nick Craver

JQueryには必ずGoogle CDNを使用する必要があります(これはMicrosoft中心の開発者によるものです)。

簡単な統計です。 jQueryにMS CDNを使用することを検討する人は、常に少数派です。 jQueryを使用するMS以外の開発者が多すぎて、Googleを使用し、Microsoftの使用を検討しません。 パブリックCDNでの大きな勝利の1つがキャッシュの改善です であるため、複数のCDNに使用を分割すると、そのメリットが得られる可能性が低くなります。

88
Dave Ward

Googleは、独自のソフトウェアで縮小されたjQueryバージョンを送信します。このバージョンは、MSが提供する標準の縮小バージョンよりも6kb軽量です。 Googleにアクセスしてください。

20
Oscar Kilhed

考慮すべき小さなことの1つは、両社がわずかに異なる「追加」ライブラリを提供していることです。

ニーズに応じて、これは関連する場合があります。

18
dp.

また、ajax.Microsoft.comはMicrosoft.com要求のサブドメインであるため、すべてのMicrosoft.com Cookieを送信すると、ファイルを取り戻すのにかかる全体の時間に追加されることに注意してください。

また、ajax.Microsoft.comは、他のWebサーバーが使用する標準の圧縮に劣るデフォルトのIIS7圧縮を使用しています。

http://ajax.Microsoft.com/ajax/jquery/jquery-1.4.4.min.js -33.4K

http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js -26.5K

また、他の人が言及したように、Google CDNは非常に人気があり、ファイルがキャッシュされる可能性が大幅に増加します。

そのため、Googleを使用することを強くお勧めします。

15
Alistair

おそらく重要ではありませんが、いくつかのA/Bテストでこれを検証できます。トラフィックの半分を1つのCDNに送信し、残りの半分を他のCDNに送信して、応答を測定するためのプロファイリングを設定します。どちらかが深刻な利用不能の問題を抱えていた場合、簡単に切り替えることができることがより重要だと思います。

11
lod3n

それは統計に関するものです: jquery.com jQueryをGoogleからロードします。 Twitter、Stackoverflow、その他多くの多くの企業も同様です。したがって、あなたのウェブサイトのユーザーは既にキャッシュされている可能性が非常に高いです=ダウンロードなし

これは大きな利点であるため、バリデータ、帯域幅、速度を忘れてください。それ以外の場合、他のCDNオプションは基本的に同じレベルで実行されます。

7
achairapart

私はここで少し遅れてチャイムを鳴らしていることを知っていますが、本番環境で使用しているコードは次のとおりです。問題は一度もありませんが、走行距離は異なる場合があります。必ず独自の環境でテストしてください。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>    
<script type="text/javascript">
    !window.jQuery && document.write('<script src="/scripts/jquery-1.4.2.min.js"><\/script>')
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
    !window.jQuery.ui && document.write('<script src="/scripts/jquery-ui-1.8.2.min.js"><\/script>')
</script> 
7
Jeremy Cade

一方が他方よりも潜在的に高速ですか?

私は実際にこれに興味があったので、次のそれぞれを使用してjsbinテストページをセットアップし、webpagetest.orgの視覚的比較ツールで実行しました。私はテストしました:

  1. ajax.googleapis.com
  2. code.jquery.com
  3. ajax.aspnetcdn.com
  4. cdnjs.cloudflare.com

誰が最速でしたか:code.jquery.com両方のテストで0.1秒

誰が最も遅いか:ajax.aspnetcdn.com最初のテストで0.7秒、ajax.googleapis.com2番目のテストで1秒ずつ

これが1回目のテストです(それぞれ3回テストされました):

ビデオ:http://www.webpagetest.org/video/view.php?id=121019_16c5e25eff2937f63cc1714ed1eac814794e62b

レポート:http://www.webpagetest.org/video/compare.php?tests=121019_D2_KF0,121019_9Q_KF1,121019_WW_KF2,121019_9K_KF

次に、2番目のテスト(それぞれ3つ)を示します。

ビデオ:http://www.webpagetest.org/video/view.php?id=121019_a7b351f706cad2c25664fee7ef349371f17c4e74

レポート:http://www.webpagetest.org/video/compare.php?tests=121019_MP_KJN,121019_S6_KJP,121019_V9_KJQ,121019_VY_KJR

5

Pingdom で述べたように:

ユーザーがサイトにアクセスしたときに、同じCDNで同じjQueryファイルを使用する別のサイトに既にアクセスしている場合、ファイルはキャッシュされているため、ダウンロードする必要はまったくありません。それより速くなることはありません。

これは、最も広く使用されているCDNの側にオッズがあることを意味します。

パフォーマンスに関するいくつかの観察:GoogleのCDNは、北米とヨーロッパの両方で一貫して3つの中で最も低速です。ヨーロッパでは、MicrosoftのCDNが最速です。

4
mayank

それはあなたのターゲットオーディエンスがどこにあるかによると思います。 alertra.comを使用して、世界中の多くの場所から両方のCDN速度を確認できます。

3
silent

追加の考慮事項-サイトがSSLであり、Android 2.1(またはそれ以前)をサポートする必要がある場合、Microsoft CDNのHTTPSバージョンのSSL証明書はAndroidのこれらのバージョンをクラッシュさせます_ブラウザ、この問題ごと: http://code.google.com/p/Android/issues/detail?id=5001 。 SSL証明書は技術的に有効であり、欠陥はAndroidのSSL実装にあるため、Microsoftの「障害」ではありませんが、それでもサイトがクラッシュします。

GoogleのCDNのSSL証明書は、この特定の問題(証明書の「Certificate Subject Alt Name」に関連する)に該当しません。

したがって、SSL + Android 2.1をサポートするには、Google CDNを使用します。

3
Kent McNeill

私の答えは他の人とは少し異なります。jqueryを使用している場合にほぼ全員が必要とするjqueryバリデータが必要な場合は、Microsoftに行きます。

Microsoft CDN http接続はキープアライブです。これは、複数のアイテムを要求しているときに大きなプラスになります。

Jquery検証が必要な場合は、Microsoft CDNを使用します。jqueryuiが必要な場合でも、Googleはキープアライブを維持しないため、Microsoftを使用します。そのように混合することはプラスです。バリデータのみにMicrosoftを使用している場合は、リクエストごとにGoogleサーバーとの個別の接続を行っています。

2
mamu

夏季には、MicrosoftはUIを提供していないと言っています。 http://www.asp.net/ajaxlibrary/cdn.ashx でダウンロードできます。

1
Netsi1964

ターゲットとするユーザーの一般的な場所に基づいて使用することをお勧めします。

サイトが一般の人々をターゲットにしている場合は、GoogleのCDNを使用することをお勧めします。

サイトも中国をターゲットにしている場合、MicrosoftのCDNを使用することをお勧めします。私の経験から、Googleのサーバーは中国政府によってブロックされ続け、それらを使用するWebサイトがロード不能になっていることを知っています。

*地域固有のサイトを作成できることに注意してください。 cn.mysite.comは特に中国向けに提供されていますが、リソースと時間に余裕がない場合は検討する価値があります。

Microsoft CDNの全リストはこちら。 http://www.asp.net/ajaxlibrary/cdn.ashx

その後、ajax.aspnetcdn.comに名前が変更され、ファイアウォールルールによるブロックの可能性が低減されています。

1
KnaveT

アプリケーションが対象とする業界によっては、他の組織が管理するCDNを使用したくない場合があります。多くの場合、コンプライアンス、プライバシー、機密性に関する問題が発生します。

たとえば、セキュリティで保護されたアプリケーションにGoogle Analyticsを含めると、ブラウザーは現在のURLを「リファラー」ヘッダーとして送信します。セッションIDやシークレットトークンなどの識別子がログに表示される場合があります。たとえば、192.0.2.5のクライアントIPが https://healthsystem.example/condition/impotence を参照する場合、かなりプライベートであると考えられる情報を推測できます。

その他の場合には、URLのアカウント番号、社会保障番号、セッション情報などの結果の情報が含まれます。この種のデータは、アプリケーションの外部で使用できるため、URLに含めることはできません。

Google、Microsoft、またはYahooを信頼しても、ユーザーは信頼しません。

金融、法律、ヘルスケアなどの業界では、BAAに署名できるベンダー(アカマイなど)の助けを借りて独自のCDNを確立できます。

1
bloudraak

また、Google CDNを使用するときは、ajax.googelapis.comなどのタイプミスをすることを考慮してください。これにより、非常に厄介なxss(クロスサイトスクリプティング)攻撃が発生する可能性があります。私はgooglapis.comのタイプミスを登録することで実際にこれをテストしましたが、非常にすぐにjavascript、maps、cssなどのリクエストを処理していることに気付きました。

Googleにメールを送り、同様のCDNタイプミスURLを登録するよう依頼しましたが、返事はありません。タイプミスのリクエストを待っている潜在的に危険な攻撃者がおり、xssペイロードでjqueryなどを簡単に返すことができるため、これはCDNに依存しない本当の理由になる可能性があります。

ありがとうございました

1
user601543