ASP.NET 2.0 は、プログラムのパフォーマンスを向上させるためのいくつかの新しい技術機能を提供します。キャッシュ テクノロジは、簡単にカスタマイズできる非常に優れたローカル データ キャッシュ メカニズムを提供します。これにより、データ アクセスのパフォーマンスが効果的に向上します。
キャッシュには、克服するのが容易ではない欠点があります。それは、データの有効期限の問題です。最も一般的な状況は、データベース テーブルのデータ コンテンツがサーバー メモリにキャッシュされている場合、データベース テーブルのレコードが変更されたときに Web アプリケーションで古くて不正確なデータが表示される可能性があります。データの種類によっては、表示される情報が古くても大きな影響はありません。ただし、株価やオークションの落札情報など、リアルタイム性が要求されるデータについては、少しでも古いデータを表示することは許容できません。
ASP.NET 2.0 は、次のタイプのキャッシュされたページ出力キャッシュをサポートします。ページ出力キャッシュは、ASP.NET ページのコンテンツ全体をサーバー メモリに保存する最も単純なキャッシュ メカニズムです。ユーザーがページを要求すると、システムはキャッシュされたデータの有効期限が切れるまで、関連するデータをメモリから出力します。このプロセスでは、ページ処理ライフサイクルを再度実行する必要なく、キャッシュされたコンテンツがユーザーに直接送信されます。通常、ページ出力キャッシュは、頻繁に変更する必要はないが、コンパイルを完了するまでに多くの処理が必要なコンテンツを含むページに特に役立ちます。ページ出力キャッシュはページのすべてのコンテンツをメモリに保存し、クライアント要求を完了するために使用されることに注意してください。
ページ部分キャッシュ
部分ページ キャッシュとは、ページ コンテンツ全体をキャッシュするのではなく、出力がページの特定の部分をキャッシュすることを意味します。部分ページ キャッシュを実装するには 2 つのメカニズムがあります。1 つは、キャッシュする必要があるページの一部をユーザー コントロール (.ascx ファイル) に配置する方法と、ユーザー コントロール (ユーザー コントロールを含むページ) のキャッシュ関数を設定する方法です。キャッシュを設定する場合としない場合があります)。これは一般に「コントロール キャッシュ」と呼ばれます。コントロール キャッシュの設定の本質は、ユーザー コントロールのキャッシュを構成することです。これには主に次の 3 つのメソッドが含まれます。1 つは @OutputCache ディレクティブを使用してユーザー コントロールのキャッシュ関数を宣言的に設定する方法、もう 1 つはコード ビハインド ファイルの PartialCachingAttribute クラスを使用してユーザー コントロール キャッシュを設定する方法です。 ControlCachePolicy クラスを使用して、ユーザー コントロール キャッシュのセットアップをプログラムで指定することです。あるいは、「キャッシュ後置換」という方法もあります。この方法は、コントロール キャッシュの逆です。したがって、ページ全体がキャッシュされますが、ページが再度リクエストされると、キャッシュされるように設定されていないコンテンツがキャッシュされます。再処理した。
アプリケーション データ キャッシュ アプリケーション データ キャッシュは、キーと値のペアを使用して任意のデータをメモリに格納するプログラム的な方法を提供します。アプリケーション キャッシュの使用は、アプリケーションの状態の使用と似ています。ただし、アプリケーションの状態とは異なり、アプリケーション データ キャッシュ内のデータは揮発性です。つまり、データはアプリケーションの存続期間全体にわたってメモリに保存されません。アプリケーション データ キャッシュの利点は、ASP.NET がキャッシュを管理し、項目が期限切れになった場合、無効になった場合、またはメモリ不足になった場合にキャッシュから項目を削除することです。項目が削除されたときにアプリケーションに通知するようにアプリケーション キャッシュを構成することもできます。 。
キャッシュの依存関係
Net 2.0 で導入されたカスタム キャッシュの依存関係、特に MS-SQL Server に基づく SqlCacheDependency 機能により、「データの有効期限」の問題を回避でき、キャッシュに通知し、対応するデータの変更に基づいて期限切れになったものを削除できます。データ
キャッシュ機能にも独自の欠点があります。たとえば、表示されるコンテンツは最新かつ正確ではない可能性があるため、適切なキャッシュ ポリシーを設定する必要があります。別の例として、キャッシュによりシステムの複雑さが増し、テストとデバッグが困難になるため、キャッシュを使用せずにアプリケーションを開発およびテストし、パフォーマンスの最適化フェーズでキャッシュ オプションを有効にすることをお勧めします。