这是关于 Session 用于存储一些临时数据的情况 - 一个示例是在多步骤注册过程中输入的信息。
如果一个网站有许多这样的部分 - 它希望将会话用作该部分中页面的临时数据存储,那么当不再需要数据时清理会话的好方法是什么,考虑到用户可能只是简单地离开该部分,因此页面本身不能用于清理。
[编辑] 就我而言,主要驱动力是减少网络流量,因为会话存储在 proc 之外,但同样的问题通常适用于内存绑定应用程序和性能。Session 中的意外数据也很容易导致难以跟踪的错误。
时间应该保持会议清洁。会话应该过期,这样做会删除所有数据。这是默认行为。
我同意在会话中存储太多数据对于服务器资源来说不是一件好事,但正如您所知,它有时是必要的邪恶。如果您真的很烦恼,请考虑将您的会话转移到 SQL Server。它会增加一点延迟,但您将能够处理更多的用户。
如果要存储批量数据,您有以下选择:
不建议在会话中存储大量数据。
为什么不将所有内容都存储在数据库中?那只是更清洁。
为什么?好吧,大多数现代 Web 应用程序在每次浏览量中都会访问数据库十几次,因此一些额外的简单查询不会显着影响性能。
话虽如此,在会话中存储大量用户生成的数据并没有错,尤其是在您使用基于文件的会话时。
为什么?一个人可以在注册表中输入多少文本,真的吗?任何小于 4000 字节的内容都将占用相同数量的空间:一个操作系统页面!
您可以设计一个多步骤的注册过程,而无需使用会话存储或使用数据库来存储临时数据。您可以设计一个包含多个面板的 .aspx 页面,一次显示一个面板。当用户完成最后一个面板时,您仍然可以访问所有之前填写的控件。