我正在开发一个基于 ASP.NET 4.0、JQUERY、AJAX 和 Javascript 的 Web 应用程序。我有一个特定的搜索页面,用户可以在其中通过多个因素进行搜索,即按日期、名称、代码、类别等。
例如
A) 在 SearchProducts 表单中,用户可以通过其唯一的编号或名称或开始日期/结束日期或类别或等来搜索产品。
B) 用户可以通过标准搜索表单应该能够执行的一个或所有参数进行搜索。
C)如果用户通过开始日期和结束日期搜索说 2012 年 12 月 1 日至 2012 年 12 月 31 日,例如,我的搜索结果包含 4 个产品,即 4 个产品是从 12 月 1 日到 12 月 31 日购买的
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 缓存:
优点:它的过期和依赖
缺点:它具有应用范围,即它不像 Session 那样对每个用户都是明智的。
第二个选项是会话:
优点:对每个用户来说都是明智的。
缺点:会话更占用内存。
我很困惑我应该使用什么。是否有任何其他选项可以使用,因为不同用户的搜索条件不同,因此希望用户明智地维护数据。