ASP.NET 4.0、JQUERY、AJAX、および Javascript に基づく Web アプリケーションを開発しています。ユーザーが複数の要素、つまり日付、名前、コード、カテゴリなどを介して検索できる特定の検索ページがあります。
例えば
A) SearchProducts フォームでは、ユーザーは一意の番号または名前または開始日/終了日またはカテゴリまたはなどを介して製品を検索できます。
B) ユーザーは、標準の検索フォームで実行できるパラメータの 1 つまたはすべてで検索できます。
C) ユーザーが開始日と終了日を介して検索すると、2012 年 12 月 1 日から 2012 年 12 月 31 日までと表示されます。たとえば、私の検索結果は 4 つの製品で構成されます。つまり、12 月 1 日から 12 月 31 日までに 4 つの製品が購入されます。
D) 結果はグリッドに表示され、製品番号をクリックすると、そのビュー ページ (選択された製品固有の詳細) にリダイレクトされ、クエリ文字列を介して ProductID が表示されます。
E)ユーザーが [表示] ページ (選択した製品固有の詳細情報) の [検索に戻る] ボタンを使用して検索した検索結果を保持できるようにする必要があります。
さて、私が計画したことは次のとおりです。
1)ユーザーが検索で送信すると、ユーザーが入力した日付、名前、カテゴリなどの検索パラメータの参照を保存したいと思います。
2) 通常のリクエストと [検索に戻る] ボタン経由のリクエストを区別するために、クエリ文字列に値を設定します。
3) 検索ページのコード:
if (!(IsPostBack))
{
string tempRequestMode = string.Empty;
if (Request.QueryString["requestMode"] != null)
{
tempRequestMode = Request.QueryString["requestMode"].ToString();
if (tempRequestMode == "searchResults")
{
//RestoreValues();
//Fetch results from the database again based on above results
}
}
}
さて、私の質問は:
この目的のためにASP.NET Cacheを使用したかったのです。
利点: 有効期限と依存関係
短所:アプリケーションスコープがあります。つまり、セッションのようにユーザーごとではありません。
2 番目のオプションはsessionです。
利点:ユーザーごとに賢明です。
短所: セッションはより多くのメモリを消費します。
私は何を使うべきか混乱しています。検索基準はユーザーごとに異なるため、使用する他のオプションはありますか?ユーザーごとにデータのメンテナンスが必要です。