CSSとJSファイルを外部に保管することをお勧めします。理由:追加のHTTPリクエスト*で失うものは、キャッシュ可能な静的コンテンツ(通常はCSSとJS)をダウンロードしなくて済むことが多いからです。ページスピードのみを考慮すると、CSSまたはJSが外部化するのに十分な大きさ
しかし、外部ファイルが小さければ小さいほど、追加のHTTPリクエストにはペナルティが生じます(たとえそれが304 Not Modifiedの応答であっても)。したがって、外部ファイルが小さくなるにつれ、CSSやJSの内容をインライン展開するのに適しています。
いくつかのテストを実行しました。詳細を経由せずに、私の結果は次のようになります。
External File Size Average Gain
----------------------------------
1KB -3.7ms
2KB -3.7ms
4KB -4.0ms
8KB -3.0ms
16KB -2.7ms
32KB 1.0ms
64KB 2.7ms
128KB 10.0ms
256KB 493.7ms
512KB 1047.0ms
1024KB 2569.7ms
私の一般的な結論は、彼らがBIGを取得するまで、外部ファイルを使用することは本当に重要ではありませんということです。そして、BIGによって、私は50-100KBの範囲を意味します...そして、それを縮小してgzipします。
追加データを使用してこれらの結果を確認または拒否することはできますか?
(* HTTPを使用していないと仮定すると、ヘッダーを「有効期限」)
私は〜4msのペナルティは非常に小さいと言います。 500msのページ読み込みは1%以下です! – Carpetsmoker
外部ファイル(と私の本でそれらを使用する主な理由)の大きな利点は、それらがキャッシュされるようにしてから、2番目からN番目のアクセスがディスクキャッシュからのはるかに速いsoooである場合です。もちろん、新しいバージョンがすぐに流通するように、独自のバージョン管理(通常はJSファイルURLのバージョン番号の変更)を行う必要があります。 – jfriend00
接続レイテンシ/スループットも重要であると思います。スピードが重要な場合は、JavaScript/CSSをインライン展開するのではなく、コンバイナ/コンプレッサ*をサーバ*上で使用するのはどうでしょうか? ASP.NETには多くの製品があります。 (つまり、1つの外部リソースだけを取得する必要があります) –