0

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

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

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

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

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

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

我正在寻找有关哪种方法对我们最有效的建议,或者是否存在我忽略的公认最佳实践或模式。

4

1 回答 1

0

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

于 2013-09-11T17:20:52.597 回答