如果您的整个搜索可以通过查询字符串表示,那么将查询字符串(或搜索条件)存储在 cookie 中是非常有意义的。当然,假设 cookie 已打开。
当用户导航到搜索页面时,您可以从 cookie 中读取查询字符串并返回相关结果。
在高负载系统中,客户端状态是一种很好的前进方式。如果您有数百个并发用户,您不希望将状态存储在服务器上。
编辑
好的,假设您决定将结果存储在会话中。这有什么问题?您的结果可能不再相关。底层数据存储中的某些内容可能会发生变化,您最终将显示不准确的数据。
假设您最终将相当大的结果集存储在内存中 - 每个用户 100kb。假设您有 200 名并发用户,那么您已经看到了至少 100kb * 200 的存储空间。这不到 20MB 的存储空间,不包括您可能存储在会话中的其他数据。随着系统的增长,扩展成本会变得很高。
另一方面,如果您将搜索条件存储在客户端上,那么您可以轻松扩展到数千个用户。您所要做的就是从 cookie 中检索他们的搜索条件并重新执行它。
我个人会寻找一个很好的理由将数据存储在会话状态中。即存储用户敏感数据。
关于这个问题- 是的,它会起作用,但正如我已经说过的,如果您决定将结果存储在服务器上,它的扩展性就不会太好。此外,如果重新启动应用程序池或重新启动 IIS,您将丢失搜索条件。