Minify、Uglify、Closureなどの縮小ツールを使用して、ページの読み込みを高速化したいと考えています。
私のプロジェクトは、いくつかのかさばるライブラリ( jQuery、Bootstrap、...)に依存しています。
私は2つのオプションを検討しています:
オプション1:公式CDNを使用する
- プロジェクトファイルのみを1
.css
つの.js
ファイルに縮小します - 有名なCDNから(縮小された)主要なライブラリを提供する
これは次のようになります。
<script src="(my cdn)/myproject.min.js"></script>
<script src="(official cdn)/jquery.min.js"></script>
<script src="(official cdn)/jquery-ui.min.js"></script>
<script src="(official cdn)/bootstrap.min.js"></script>
<link rel="stylesheet" href="(official cdn)/bootstrap.min.css"></link>
<link rel="stylesheet" href="(my cdn)/myproject.min.css"></link>
長所:
- 訪問者は、別のWebサイトからの同じ公式CDNによって提供される、一部のライブラリのキャッシュバージョンをすでに持っている可能性があるため、冗長な転送を回避できます。
短所:
- そうでない場合、このアプローチでは複数のHTTP呼び出しが必要になり(実際に呼び出したとしても、リクエストを行ってを取得します
304 Not Modified
)、これによりページの読み込み時間が長くなります。
オプション2:すべてをまとめる
- プロジェクトファイルとすべてのライブラリのソースファイルを1つの巨大なファイルに縮小します。
これは次のようになります。
<script src="(my cdn)/myproject-and-libraries.min.js"></script>
<link rel="stylesheet" href="(my cdn)/myproject-and-libraries.min.css"></link>
長所:
- 厳密な最小値に制限されたHTTP呼び出しの数。
短所:
- ユーザーがすでに別のWebサイトからjQueryとBootstrapコードをロードしている場合でも、ユーザーはすべてのものを私のものからリロードする必要があります。
最後の注意
どちらの場合も、 AWS CloudFrontで自分のCDNから静的ファイル(自分でコンパイルしたもののみ)を提供するので、問題はCDNを使用するかどうか、またはどちらが優れているかではありません。
本当の問題は、サードパーティのライブラリを自分のものと一緒にパックするかどうかです。