SessionState和ViewState有什么区别?

ASP.NET中的SessionState和ViewState有什么区别?

会话状态包含与服务器有关的特定会话(由特定客户端/浏览器/机器)的信息。 这是一种跟踪用户在网站上做什么的方式…… 跨越多个页面 …在Web的无状态中。 例如,特定用户的购物车的内容是会话数据。 Cookie可用于会话状态。
另一方面, 查看状态是特定于特定网页的信息。 它存储在一个隐藏的字段中,以便用户不可见。 它被用来保持用户的幻想,即页面记得他最后一次做了什么 – 每次回帖时都不要给他一个干净的页面。 检查此页面了解更多 。

会话状态保存在服务器上,ViewState保存在页面中。

会话状态通常会在用户不活动一段时间后清除(请求cookie中没有包含会话ID的请求)。

视图状态在后面的post后面张贴在一个隐藏的字段中。

SessionState的

  • 可以坚持记忆,这使得它成为一个快速的解决scheme。 这意味着状态不能在Web Farm / Web Garden中共享。
  • 可以坚持在数据库中,对Web Farms / Web Gardens很有用。
  • 当会话消失时清除 – 通常在20分钟不活动之后。

的ViewState

  • 在服务器和客户端之间来回传送,占用带宽。
  • 没有到期date。
  • 在Web Farm / Web Garden中很有用

用法:如果要存储想要在不同网页上访问的信息,可以使用SessionState

如果要存储要从同一页面访问的信息,则可以使用Viewstate

存储 Viewstate存储在页面本身(以encryption文本),而Sessionstate存储在服务器中。

SessionState将在以下条件中清除

  1. 由程序员清除
  2. 用户清除
  3. 时间到

查看状态:

- 1.View state is maintained in page level only. - 2. View state of one page is not visible in another page. - 3. View state information stored in client only. - 4. View state persist the values of particular page in the client (browser) when post back operation done. 

会话状态:

  1. Session state is maintained in session level. 2. Session state value is available in all pages within a user session. - 3. Session state information stored in server. - 4. Session state persist the data of particular user in the server. This data available till user close the browser or session time completes. - 5. Session state used to persist the user-specific data on the server side 

会话主要用于存储用户特定数据[会话特定数据]。 在会话的情况下,您可以使用整个会话的值,直到会话过期或用户放弃会话。 Viewstate是仅在使用该页面的页面中具有作用域的数据types。 除非将这些值传输到所需的页面,否则无法将视图状态值存储到其他页面。 在viewstate的情况下,所有的服务器端控制数据在__Viewstate中作为键值对被传送到服务器,并在发生回发时被传送回客户端的相应控件。

视图状态 :ViewState主要由服务器控件使用,仅在发布数据的页面上保留状态。 信息被传递给客户端,并以隐藏的variables读回。 对于不需要的页面,ViewState是不必要的开销。 随着ViewState变大,它会影响垃圾收集的性能。

会话状态 :会话定义为在Web应用程序和用户之间共享的一段时间。 每个使用Web应用程序的用户都有自己的会话。 项目/对象可以被放置到仅为该用户定义这些对象的会话中。 会话包含有助于识别相关值的关键variables。 这可以被认为是一个哈希表。

SessionState将特定用户的数据保存在服务器中。 直到用户closures浏览器或会话时间之前,该数据才可用。 视图状态主要在回发期间有效,信息仅存储在客户端。 Viewstate仅对可序列化的数据有效。 此外Viewstate不安全,因为数据暴露给客户端。 虽然我们可以configuration页面指令和机器密钥使视图状态encryption。 在会话的情况下,这是存储在服务器存储器中的用户特定数据。 会话状态适用于任何types的对象。 我们也可以通过不同的网页接受会议的帮助。

会话状态:

1.会话状态variables可用于所有页面,但仅适用于给定的单个会话。 会话variables就像单用户全局数据一样。

2.会话状态variables存储在Web服务器上。

3.当用户会话超时时,SessionStatevariables被清除。 默认值是20分钟。 这可以在web.config中configuration

申请状态:

1.应用程序状态variables适用于所有页面和所有会话。 应用程序状态variables就像多用户全局数据。

2.应用程序状态variables存储在Web服务器上。

3.当托pipe应用程序的进程重新启动时,应用程序状态variables将被清除。