AFAIK、主な違いはセッションがユーザーごとであるのに対し、キャッシュはアプリケーションスコープのアイテム用です。
他の回答で述べたように、(セッションまたは Cookie のいずれかで) キーを提供すれば、ユーザーごとの情報をキャッシュに保存できます。そうすれば、キャッシュ内のアイテムを期限切れにし、それらに依存関係を設定するためのより詳細な制御が可能になります。そのため、問題の DataTable が定期的に変更される場合は、おそらくキャッシュが適切なオプションです。それ以外の場合、静的セッションの場合はより適切な場合があります。Steven Smith は、チェックする価値のあるdnrtv でのキャッシングに関する優れたビデオを公開しています。
それは、何を達成しようとしているのか、どれだけの時間があるかに大きく依存します。アプリケーションに状態を保存する方法に関して、考慮すべき他の選択肢がいくつかあります。テーブルの大きさによっては、状態を Cookie に保存することを検討できます (機密情報である場合は暗号化されます)。または、アプリケーション スコープのデータの場合は、ページまたはクラスで静的フィールドを使用します。Application オブジェクトもあります。
更新: 自問しなければならない重要な質問は、誰がこのデータを見るべきかということです。
Are they going to access the data frequently?
(いいえ、気にしないでください)。
Is it going to change?
(いいえ、静的フィールドまたはアプリケーションを使用してください)。
Is it acceptable for user a and user b to see the same results?
(いいえ、ユーザー名と検索語で構成されるキーでキャッシュを使用してください。)
(はい、検索語のキーを使用してキャッシュを使用します)。
正直なところ、開発がそれほど進んでいない場合は、キャッシング/状態の問題を後日保留することを検討します-必要ないかもしれません.
パフォーマンス チューニングの最初の 3 つのルールは次のとおりです。1. 測定する、2. さらに測定する。3. 再度測定...