1
3
假设信息不敏感,那么您可以将信息存储在一个cookie中,这样可以减少存储服务器端所需的信息量。这还允许您通过JavaScript访问信息。 或者,您可以使用viewstate来存储信息,尽管这会导致在服务器和客户机之间发送大量数据,而不是我的首选解决方案。 您应该存储的会话信息量因应用程序、预期用户数、服务器规格等的不同而变化很大。要给出更准确的答案,需要更多信息:) 最后,假设在整个过程中收集的信息不是逐页收集的,那么您可以将所有信息存储在数据库表中,并且只在会话中存储记录的唯一ID。提交每一页时,数据库记录将更新,然后在最后一页上检索并提交所有信息。如果由于所需的db读取次数而需要在每个后续页面上检索以前的信息,那么这不是一个理想的解决方案。 |
2
2
您还可以拥有一个包含整个HTML表单的ASP页面,并隐藏其中的一部分,直到用户填充并“提交”可见部分… 然后简单地隐藏填好的部分并显示表单的下一部分… 这在.NET框架中非常简单,可以为每个“向导步骤”使用面板,并在显示和隐藏每个面板时添加loggic。 然后您将在一个页面上拥有所有数据。 |
3
0
如果您使用传统的HTTP模型(即不要使用runat=“server”),您可以将数据发布到另一个ASP页面,并将发布的数据放入隐藏的表单元素中,您可以对所需的许多页面执行此操作,从而避免在会话变量中放置任何内容。 |
4
0
由于从性能的角度来看,在用户会话对象中存储大量数据是有问题的,ASP.NET除了在上面的文章中提到的之外,还提供了一些其他的解决方法。 ASP.NET Profile Provider 允许您在数据库中保留与会话相关的信息。您也可以使用 Session State Server 它使用单独的服务器存储所有会话信息。这两种情况都要考虑到,如果需要使用集群或负载平衡器,服务器仍然可以跨不同的服务器识别会话信息。如果将信息存储在HTTP会话对象中,则会遇到这样的问题:对于该会话,一个用户必须始终访问同一个服务器。 |
5
0
会话、视图状态、数据库。这些都很慢,但能完成任务。 隐藏的表单字段是我最喜欢的答案。 还有其他方法来保持状态。cookies、弹出窗口、框架集或iframes。 |
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |