保持数据以进行全能搜索

时间:2013-09-11 16:55:24

标签: c# asp.net webforms persistence

我们有一组捕获我们在ASP.NET应用程序中创建的所有搜索页面。我们有一个初始搜索页面,一个SERP,然后是一个单项详细信息页面。所有3个页面都有一个搜索栏,其中包含初始条件,更多条件和高级条件选择。

当我们将所有标准放在一起时,除了主搜索框之外,我们还有20个不同的标准参数(从价格,价格,销售项目,创建日期等),然后是三个参数ID集合。这些集合来自我们的用户可以搜索的制造商,产品系列和类别的列表。所以我们有20个字段的固定集合,然后是3个可以有一个或两个制造商的集合,或者可以为他们选择并想要搜索的复选框保留100个Guids的集合。

在我们的旧系统中,我们只有一个表单解决方案,我们只是回发并将所有内容提交给我们的业务对象,并将其传递给返回结果的方法。在这个新表单中,我们需要从页面到页面提交结果并坚持此标准。我们正试图找出保留数据的最佳方法,当我说得最好时,我的意思是效率最高。

Querystring - 这不适用于3个集合的大量Guid值。

会话 - 我们将创建一个条件对象并将其存储在会话中。当他们从一个页面移动到另一个页面时,我们可以将其删除在我们的高峰期,我们可能有200-300人同时使用服务器,搜索是我们最常用的形式。我担心所有会话变量的性能。

数据库 - 我们正在考虑将此标准对象序列化并存储到数据库(SQL Server 2k5)中,并且用户将始终在数据库中拥有当前搜索或最后一次搜索。这消除了会话解决方案中的一些Web服务器负载,但我担心这个对象加载,序列化,数据库往返和卸载会降低表单速度并影响用户体验。

我正在寻找有关哪种方法最有效地为我们工作的建议,或者是否存在我所忽视的公认的最佳做法或模式。

1 个答案:

答案 0 :(得分:0)

使用HTML5,您可以使用localStorage和sessionStorage,这使客户端可以在其浏览器中保留信息。 http://www.w3schools.com/html/html5_webstorage.asp