Web可以被定义为无状态的。这意味着每次需要特定的Web页面时,必须在每次将其发布到服务器时重新创建该页面。HTTP协议不能在页面上保存客户端信息。正是由于这个原因,建议使用状态管理。状态管理是一种允许管理页面状态和服务器端状态的方法。

状态管理有两种类型。它们是会话状态和视图状态。两者之间的主要区别是视图状态管理主要处理状态管理的客户端。它的配置是为了方便最终用户管理状态。还有会话状态管理,它主要处理Web的服务器端,也允许从服务器端进行内容管理。

视图状态仅在一个级别上维护,即页面级别。这限制了可以在页面上进行的更改。会话状态维护在会话级别。如果希望查看视图状态,则只能在单个页面上执行,而不能在其他任何页面上执行。这与会话状态形成鲜明对比,会话状态在所有页面中都可用,只要这些页面属于用户会话的范围。

在视图状态中收集的信息仅为客户端存储,不能传输到任何其他地方。会话状态的信息存储在服务器中,任何有权访问存储信息的服务器的人都可以访问它。当使用view state时,发布的特定页面的值将保存在客户端正在使用的浏览区域中,只有在整个操作完成时才会发布回来。与会话状态相比,这是一个鲜明的对比,在会话状态下,数据一直保持可用,直到会话完成或浏览器关闭。在这段时间内,服务器都可以使用数据。

在使用视图状态时,倾向于持久化特定于页面实例的数据,而使用会话状态则倾向于持久化服务器端可用的特定于用户的数据。viewstate的有效性在回发中尤为重要。同样重要的是要注意,视图状态只是可序列化数据的同义词。由于数据暴露给客户端,因此不能保证视图状态中的安全性。如果需要数据安全,可以对其进行加密。会话状态仅对类型对象有效。

会话状态和视图状态的区别

视图状态

  • 仅在页面级别进行维护。
  • 视图状态只能在单个页面中可见,不能在多个页面中可见。
  • 仅存储在客户端的信息。
  • 在发生回发操作时,视图状态将保留值。
  • 视图状态用于允许特定于页面实例的数据的持久性。

会话状态

  • 维持在会话级别。
  • 会话状态值available表示用户会话中所有可用的页面。
  • 会话状态信息保存在服务器上。
  • 会话状态下,用户数据保留在服务器中。数据的可用性得到保证,直到用户关闭会话或浏览器关闭为止。
  • 会话状态用于服务器端用户相关数据的持久化。

会话状态和视图状态的区别

本文由网友:洪碧菡 投稿 欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:会话状态和视图状态的区别
本文链接:https://www.vsdiffer.com/vs/a-session-state-vs-a-view-state.html
免责声明:以上内容仅代表 网友:洪碧菡 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。