現在、Google CDNからjQueryおよびjQueryUI(およびjQueryUI CSS)ライブラリを取得しています。 google.load("jquery", "1");
を呼び出すことができるので、これが好きです
および最新のjQuery 1.x.xが使用されます。
ここで、セキュリティのためにライブラリをローカルにプルします。
私はそれらをローカルで引き出せてうれしいですが、私は気をつけるべき他の利点と落とし穴のいくつかは疑問に思っていますか?
CDNに保存することの主な利点は、自分のWebサイトからダウンロードしたファイルと並行してファイルをダウンロードできることです。これにより、すべてのページの待ち時間が短縮されます。そのため、これの裏側はローカルでホストすることの落とし穴です-遅延の増加。その主な理由は、ブラウザーが同じWebドメインに同時に確立できる接続の数が制限されていることです。 IE6では、これは同じドメインへの2つの同時接続にデフォルト設定されていました-IEのすべての開いているウィンドウ間で共有!!IE8 +では、デフォルトで6に改善されましたこれはFF/Chromeとインラインですが、多くの画像があり、スプライトを使用していない場合は、待ち時間が長くなります。
CDNを使用すると、最新バージョンを取得するのではなく、常にライブラリバージョンを明示的に設定しますになります。これにより、新しいバージョンがコードを破壊するリスクが軽減されます。 jQueryではあまりありませんが、可能です。
CDNを使用するもう1つの主な利点は、サイトのトラフィックの削減です。 GB単位で支払う場合、またはリソースが限られた仮想サーバーを使用している場合、一部のコンテンツをパブリックCDNに変換すると、サイト全体のパフォーマンスが向上し、ホスティングコストが下がることがあります。
@Xaverによるこの質問に対する他の回答も必ず読んでください。これは非常に良いトリックです
私は常にGoogleのCDN(Content Delivery Network)を使用しています。ただし、念のため、オフラインの場合:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>!window.jQuery && document.write('<script src="jquery-1.4.2.min.js"><\/script>')</script>
Google CDNのjQueryを取得し、必要に応じてローカルにフォールバックします
編集:IE6をサポートする必要がなく、サイトでhttpsが部分的に使用されている場合は、httpも削除できます。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
他の人が利点をカバーしています。落とし穴:
独自のサーバーからのコンテンツのみを含める場合、サイトを機能させるには、ファイアウォールなどによってブロックされていないサーバーを実行する必要があります。サードパーティからスクリプトをプルすると、サイトを機能させるために実行およびブロック解除する必要がある2台のサーバーになります。
プルするサイト<script>
fromは、サイトでのユーザーエクスペリエンスを完全に制御できます。グーグルが悪を感じているなら、キープレスを記録するためにjQueryのコピーに何かを入れ、ウェブ追跡データベースに結びつけるためにあなたが今いるページから個人情報を盗み、すべてのフォームに「I love Google!」コメントを投稿させる、 等々。
Googleはおそらく実際にそれを行うつもりはありませんが、それはあなたの制御の及ばない要因であり、確かに他のスクリプトホスティングサービスで心配する何かです。統計スクリプトがマルウェアローダーによって侵害される前に、インシデントがありました。
サードパーティからのスクリプトを含めるには、サイトの1ページであっても、そのホスト名に表示されるユーザーがアクセス可能なすべての機能(Webに面した管理機能を含む)で100%信頼する必要があります。
Google CDN:
ローカル:
ローカルバージョンを使用することを好みます。何を提供するかを制御できないためです。たとえば、私の国では法的な問題であるため、ユーザーがgoogle-analyticsなどの影響を受けないようにします。
利点:(特にGoogleのCDN向け)
GoogleのCDNを使用することは、事実上あらゆる見方で良いことです。
パフォーマンスは改善され(サイトが実際にビジーでない限り、かなりわずかですが)、サーバーが送信しなければならないデータの量が減少します(ただし、jQueryはダウンロードするのに正確な大規模なものではありません)など。
使用したくない唯一の理由は、Googleを信頼していない場合です。これを使用することで、他の方法では公開したくないURL(たとえば、サイトの安全な領域)の知識など、サイトのトラフィックプロファイルに追加の情報ウィンドウを効果的に提供します。
セキュリティに不安がある場合は、これを使用しないように説得するのに十分かもしれません(結局、自分でホストすることでサイトのクロールが遅くなるわけではありません) Googleが既にサイトについて十分に知っているので、これを追加してもそれほど違いはありません。
おそらく私は最近は少数ですが、本当に必要な場合以外はCDNを使用したくないと思います。使用を開始する主な要因は次のとおりです。
しかし...ポイントは、これらのポイントが実際に世界のウェブサイトの90%に当てはまらないということです。世界中の何百万人ものオンラインユーザーがいるFacebookではなく、毎秒数百GBのGBが転送されるPornhubではないでしょう。
あなたのウェブサイトがあなたの都市/国のユーザーをターゲットにしていて、あなたが持っているユーザーの量に対して1つのサーバーの容量で十分な場合、なぜCDNが必要なのでしょうか?市内のユーザーの方が速く、メインサーバーからすべてをローカルで取得する方が簡単です。
一般的にはCDNについてでしたが、jQueryまたはその他のライブラリに関する実際の質問に近づきましょう。
あなたのウェブサイトが1年以上もメンテナンスなしでアクセスし続けられるようにしたいなら、例えばローカルに置いてください。図書館は、たぶん、あなたがたぶん従おうとしない狂気のテンポで更新されています。そして、古いバージョンは最終的に削除されています。さらに、ライブラリ全体が死ぬ可能性があります(おそらくjQueryには適用されません)。
私の最近の経験から-私は3.x.x(2012年)から5.x.x(2019年春)に保守しているWebサイトのTinyMCEを更新しました。このWebサイトは、ロジックのこの部分をメンテナンスせずに7年間機能していました。当時は「縮小」の概念はなく、CDNは現在ほど一般的ではありませんでした。しかし、たとえそれらが一般的であっても、あなたは今から3-5-10年後に何が起こるか決してわかりません。通常、あなたはあなたがあなたのウェブサイトをあなたがそれを維持しなくても生き続けることを望みますか?ただし、今日CDNからjQueryを取得した場合、このリンクは5年後に壊れる可能性があります(おそらく壊れるでしょう)。
@Xaverが示唆したように、CDNおよびローカルバージョンへのフォールバックを使用したソリューションは、適切な妥協策となります。しかし...多分ただCDNリンクを取り除く? ;)
私にとって、それは本当にあなたがどれだけコントロールしたいかにかかっています。あなたが私のようで、仕事や旅行の際にローカルホストで開発する必要がある場合。 jqueryファイルをローカルに配置する方が、Googleや他の場所でホストするよりも優れています。