js や類似のリソースにはローカルではなく CDN を使用する方が良いですか? [closed] 質問する

js や類似のリソースにはローカルではなく CDN を使用する方が良いですか? [closed] 質問する

私はすべてをローカルに保存し、インターネット接続のないローカル サーバーでもサイトが実行できるようにする習慣があります。これは、サイトをオフラインでスタンドアロンで実行できるようにするための、そして特に開発段階でページの更新が非常に速く、インターネットがなくてもサイトの開発を継続できるようにするための、それ以来の私の原則です。

そのため、すべての Web アプリケーションとサイトでは、必要なパッケージとライブラリを常にダウンロードし、インクルードなどのためにローカルにリンクします。

パブリック CDN などを介してライブラリをリンク/インポートする人が増えていることは知っていますが、そうすることで実際に何か大きなメリットがあるのだろうかと思いました。

私は明白な点を特定しました (遠慮なく訂正してください):

PRO LOCAL - 開発エクスペリエンスが高速 - 壊れる可能性のある他のサーバーへの依存がゼロ - サイト ページが既に同じサーバー上のファイル/ライブラリと連携して高速に実行されるため、ユーザー エクスペリエンスが高速 (?)

PRO CDN - ウェブスペースを節約します (しかし、今日の世界では、これは重要ではないようです。一般的なサイトでは、おそらく 10 ~ 20 MB のスペースしか節約できませんが、今日の安価なサーバーなどを考えると、これは大したことではありません)

  • サーバーへの負荷が軽い (?) = 実はこれについて疑問に思っています。CDN からの読み込みはサーバーのプロセッサ RAM と I/O ディスクへの負荷が軽くなるのでしょうか、それとも実行中のドキュメント (例: index.php) がスレッド/メモリ/CPU サイクルを占有して完了するまでに少し時間がかかるので、負荷が悪くなるのでしょうか?

皆さんありがとう。

ベストアンサー1

CDNの利点は、あなたのためではありません(そうあるべきではありません)。あなたの顧客/ユーザーのためです。CDNファイルを使用すると、特にjQuery(またはその他の大きなライブラリ)などの広く使用されているライブラリの場合、ユーザーは近くの物理的な場所からファイルのキャッシュされたコピーを受け取ることになります。ほとんどの場合、大きなライブラリに人気のあるCDNを使用すると、ユーザーは以前にそのリソースをダウンロードしたことがあります。他人のサイト- ファイルはブラウザ内でローカルにキャッシュされます。

これにより、ユーザーがファイルをダウンロードするのにかかる時間が短縮されます。これは、エッジケースのごくわずかなマージンを除いて、サーバーの負荷や開発能力の問題ではありません。まずユーザーのことを考えてください。

ほとんどの静的ファイルに CDN を使用する方が、ユーザーにとって確実に優れています。


更新: ブラウザはクロスサイトキャッシュをサポートしなくなりました

2022-01-25現在

これは長い間真実でしたが、実際にはもう当てはまらないということに注目すべきです。CDN を使用することで実際にメリットはまだあります (たとえば、大規模でグローバルに分散された CDN では、ファイルはエンド ユーザーの物理的に近い場所から提供されます) が、クロスドメイン リソース キャッシュはもはやメリットではありません。

ゆり これを指摘した2021年の終わりごろ、そして全ての主要ブラウザはキャッシュパーティショニングを実装している遅くとも2020

CDN を使用することは依然として有益であり、ユーザーにとってもメリットがありますが、そのメリットは、ホット キャッシュ ヒットによる全体的なパフォーマンスの低下ではなく、地理的に配置されたサーバーによるレイテンシの短縮にあります。

おすすめ記事