ViewState,Application和Page Session有什么区别?

时间:2009-07-24 12:37:58

标签: asp.net

请有人向我解释ViewState,应用程序和页面会话之间的区别吗?

5 个答案:

答案 0 :(得分:9)

快速一个衬垫 - 如果您想要更多细节,请询问

ViewState是保存页面当前状态的变量,该状态保存在页面的隐藏字段中(经常使用)

ApplicationState是一个变量,您可以在应用程序的生命周期中存储值(可能会定期循环,并且在您不知情的情况下)(使用频率较低)

会话是您可以写入的变量,从他们访问您的网站到关闭浏览器之前一直存在。 (除非有任何超时)。 (经常使用)

答案 1 :(得分:7)

一篇好文章: How to Choose From Viewstate, Session, Application, Cache, and Cookies

关于Session和Viewstate之间差异的一些很好的讨论:Session Vs ViewState

答案 2 :(得分:2)

会话状态保存在服务器上。 会话状态通常在用户不活动一段时间后被清除。 可以持久存储在内存中,这使其成为一种快速解决方案。这意味着无法在Web场/ Web园中共享状态。 可以保存在数据库中,对Web Farms / Web Gardens很有用。 在会话终止时清除 - 通常在不活动20分钟后清除。

ViewState 保存在页面中。 视图状态在后续帖子中发布在隐藏字段中。 在服务器和客户端之间来回发送,占用带宽。 没有失效日期。 在Web场/ Web园中很有用

答案 3 :(得分:1)

SESSION变量存储在服务器上,可以包含任何类型的数据,包括引用,它们类似于Windows应用程序中的全局变量,并使用HTTP cookie存储用于查找用户会话变量的键。

VIEWSTATE变量存储在浏览器中(而不是cookie),但存储在浏览器的隐藏字段中。 Viewstate也只能保存字符串数据或可序列化的对象。

答案 4 :(得分:1)

当我们使用视图状态来设计Web应用程序时,它会保持其状态始终保持在当前位置。如果我们使用session,那么它不会保留它的状态,所以当我们刷新浏览器时,它会从初始页面开始。