質問

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

役に立ちましたか?

解決

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

ショートバージョン:それほど重要ではありませんが、ホストするホストによって異なる場合があります。 GoogleはjQuery.Validateをホストせず、MicrosoftはjQuery-UIをホストしませんでした。2016年以降、Microsoftは ScriptResource.axd を介して提供されるスクリプトを提供しています。より簡単な統合(例: ASP.Net 4.0を使用したScriptManager )。

重要な注意:イントラネットアプリケーションを構築している場合は、CDNアプローチを避けてください。誰がホストしているかは問題ではありません。内部で非常に過負荷のサーバーを使用している場合を除き、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時間です。これにはページの読み込み速度の点でコストがかかります。 平均:使用頻度が高いという理由だけで

他のヒント

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

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

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

考慮すべき小さなことの1つは、両社が提供する「追加」が少し異なることです。ライブラリ:

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

また、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はファイルがキャッシュされる可能性を大幅に増加させる方法としてより人気があります。

だからグーグルの使用を強くお勧めします。

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

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

<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> 

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

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

  

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

私は実際にこれに興味があったので、次の各項目を使用して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.com で2番目のテストで1秒

1回目のテストは次のとおりです(それぞれ3回テストされました):

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

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

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

Pingdom

  

誰かがあなたのサイトを訪問したとき、彼らがすでに別のサイトを訪問している場合   同じCDNで同じjQueryファイルを使用するサイトでは、ファイルは   キャッシュされており、ダウンロードする必要はまったくありません。できません   それより速くなります。

     

これは、最も広く使用されているCDNのオッズが   側、それはあなたのサイトに報いることができます。

     

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

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

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

GoogleのCDNのSSL証明書は、この特定の問題に違反するものではありません(証明書の「証明書サブジェクトの代替名」に関連)。

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

私の答えは他のものとは少し異なります。jqueryを使用している場合にほとんどすべての人が必要とするjqueryバリデータが必要な場合は、マイクロソフトに行きます。

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

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

夏季には、MicrosoftはUIを提供していないと言いますが、これは正しくありません(これ以上)。 http://www.asp.net/ajaxlibrary/cdn.ashx。

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

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

ありがとう

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

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

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

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

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

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

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

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

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

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

その後、名前を ajax.aspnetcdn.com に変更しました。これにより、ファイアウォールルールによるブロックの可能性が低くなります。

両方を使用します!

Google Jqueryホスティングの方がずっと長いので、Microsoftに比べて人々がすでにキャッシュしている可能性がはるかに高いので、最初にそれを持っています。

個人的には、このようなものを使用します-

if (typeof jQuery == 'undefined') {  
    // jQuery is not loaded  

  document.write("<scr" + "ipt type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></scr" + "ipt>");
        }
} else {
    // jQuery is loaded
}

(この100%が機能するかどうかはわかりませんが、例ではなくアイデアを書くつもりでした-これは、リンクが見つからなかったため、MicrosoftのJqueryではなく、GoogleがホストするJqueryを参照しています)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top