0

現在、1 つの aspx ページに 7 つのユーザー コントロールが配置されており、その一部はメニュー、フッター、ヘッダーなどとして作成されています。

常に Web ユーザー コントロールを利用して、さまざまなページ コンポーネントを分離するのが良い方法かどうか疑問に思っています。aspx ページで比較的多数のコントロールが使用される場合、ページの読み込みやサーバーの応答性など、パフォーマンスに実際の影響はありますか?

また、ユーザー コントロールをキャッシュするためのオプションであることにも気付き@ OutputCacheました。ヘッダー、フッター、およびこれらの種類のユーザー コントロールに @ OutputCache を適用することをお勧めします。

4

1 に答える 1

2

時期尚早の最適化は諸悪の根源

- ドナルド・クヌース。

使用する必要があるという証拠がプロファイリングから得られない限り、出力キャッシュやその他の形式の最適化を使用しないでください。出力キャッシュは、トラフィックの多いフロントページのように、頻繁にアクセスされ、パーソナライズされていない Web ページのデータベース バックエンドにアクセスする必要をなくすためのものです。

UserControls を使用しても、パフォーマンスに関して本質的に問題はありません。出力バッファ ライターを介してテキストを直接返す高パフォーマンスのアセンブリに、すべてが舞台裏でコンパイルされます。コントロールを使用する唯一の「コスト」は、Render関数への追加の vtable 呼び出しと、各コントロールの状態がメモリ内で使用する余分なバイトです。つまり、無視できます。

ページのライフサイクル中、最も時間がかかるステップは、常にデータベースまたは外部 Web サービスにアクセスするステップです。完成したページのレンダリングには、約 1 ミリ秒以下かかります。信じられない場合は、出力トレースを有効にしてください。

そうは言っても、ヘッダーやフッターなどの一般的なサイト領域に UserControls を使用している理由は疑問です。これが MasterPages の目的です。

于 2012-09-18T03:38:35.737 に答える