1

これに対する答えは「場合による」かもしれませんが、聞いて損はありません。

基本的に、いくつかの論理 css/js ファイル ( everythingindexuser) があります。すべての CSS を 1 つのファイルに統合することはできません。これは、個別のページの一部がスタイル ルールを共有し、それらのコンポーネントを上書きしているためです。例えば

/* everything.css */
body {
   /* lots of important rules here */
}

/* index.css */
body {
   background-color: blue;
}

/* user.css */
body {
   background-color: red;
}

ご覧のとおり、これらの競合のため、すべての CSS を 1 つのファイルに統合することはできません。これは JavaScript にも当てはまります。

私の質問は、ページごとの CSS/JS を 1 つのファイルに統合してリクエストの数を減らす方がよいのでしょうか、それとも他のページにアクセスして個々のファイルをキャッシュする利点を上回るのでしょうか。

everything.cssはかなり大きいですが、 または のいずれindexuserにアクセスするとキャッシュされるため、もう一方にアクセスした場合に再度ロードする必要はありません。 一方、別々にしておくと、追加のリクエストが発生します。

ページごとに 1 つの CSS/JS リクエストを使用する方がよいのか、ページを切り替えるときにキャッシュする利点があるのか​​について、コンセンサスはありますか?

私が無視した別の解決策はありますか?

4

3 に答える 3

1

一般に、ページごとに1つのCSSファイルのみが必要であり、キャッシュできるようにサイト全体でグローバルにすることもできます。

ブラウザはページのレンダリングを開始する前にCSSを必要とし、最初のTCP接続はスロースタートやその他の接続オーバーヘッドに悩まされます(ただし、最近のブラウザはこれを克服するためにTCP接続を投機的に開きます)

スロースタートとは、CSSを2つのファイルとして取得する方が、1つの大きなファイルとして取得するよりも遅くなる可能性があり、接続が解放されて他のコンテンツの受信を開始することを意味します。

JohnRauserのTCPとWebパフォーマンスの下限を読むことを強くお勧めします

于 2012-05-31T20:16:57.600 に答える
1

あなたが言ったように、それは依存します-あなたがリンクしているcssとjavascriptファイルが多すぎないなら、あなたは実際に複数のファイルを持つことからいくらかのパフォーマンス上の利益を見ることができます。各ファイルは個別のリクエストになりますが、これらのリクエストはほとんどのブラウザで並行して実行されるため、クライアントのパフォーマンスがわずかに向上する可能性があります(もちろん、追加のリクエストがあるため、サーバーはもう少しヒットします、しかし実際にはこれは無視できるはずです)。

ページごとに2つのcssファイルを表示している場合(サイト全体のスタイル用に1つ、ページ固有のファイル用に1つ)、それらを1つに結合する必要はありません。ただし、約20のcssファイルがある場合は、それらを組み合わせる必要があります。

また、明らかにcssファイルを縮小し、Webサーバーでgzip/deflate圧縮を有効にする必要があります。

于 2012-05-21T15:14:28.460 に答える
1

JavaScript の場合は、常に連結して 1 つのファイルに縮小します。唯一の例外は、帯域幅が重要な場合 (モバイル) です。競合がある場合は、JavaScript を適切に編成していない可能性があります。Learning JavaScript design patternsには、JavaScript で名前空間とモジュールを使用する方法に関する優れた紹介があります。

CSSの場合は依存します。私は常にコア スタイル フレームワークをまとめて維持し、必要に応じてカスタマイズされたスタイルをロードするようにしています。Lessのようなツールを使用すると、これがはるかに簡単になります。

于 2012-05-21T15:16:43.807 に答える