Session和ViewState

Anonim

Session vs ViewState

ViewState和session是Web应用程序中两个问题的解决方案。该问题涉及计算机用户在特定时间段内访问网页。在使用一段时间后,或在用户关闭应用程序后,将从最近的使用日志中删除网页的信息和访问权限。

ViewState仅在回发期间有效,仅适用于序列化数据。 ViewState首先是对象/体系结构,它使Web控件能够在回发之间保持其值。与会话类似,ViewState可以运行并可供服务器访问。 ViewState中的信息仅作为浏览器隐藏字段中的加密值存储在客户端中。这使得数据不安全并且可能遭受黑客攻击。在回发期间,ViewState会跟踪特定网站中的更改。

ViewState还保留特定页面的控件值。这意味着页面上的数据不可用,也无法访问或复制到另一个页面中。 ViewState维护在页面级别或当前的实时页面。它没有过期点,可以在ViewState中为特定控件启用或禁用。

查看页面的源代码可以看到ViewState,直到页面关闭为止。 ViewState主要用于在当前页面上保存少量数据(通常是字符串和其他序列化数据)。此外,与会话相比,ViewState消耗更多带宽,但内存和内存空间更少。 ViewState不会占用太多内存,因为页面关闭时所有数据都会丢失。

同时,会话更常用于网页,不仅影响页面,还影响整个应用程序以及使用该特定浏览器或页面的用户的整个持续时间。会话对任何类型的对象都有效,并存储在浏览器的服务器内存中。它保留的数据是计算机用户的数据,换句话说,是用户特定的数据。在用户关闭浏览器应用程序或会话自行过期之前,数据可用。

与ViewState不同,会话中的数据可以被访问或复制到会话中的另一个窗口或页面中。会话也无法禁用或启用特定控件。会话还涉及要存储在其存储器容器中的不同种类的数据。与ViewState相比,Session也有更大的内存,因为它使用服务器内存。这样做的缺点是会话有一个到期时间,并且存储在服务器内存中的数据量会影响服务器的时间负载。

摘要:

1.除了ViewState和session之外,其他ASP.NET解决方案还包括应用程序变量,缓存和cookie。 2.ViewState和session可以在服务器环境中运行和访问。 3.ViewState用于客户端,而会话在服务器端使用。在客户端使ViewState没有过期。相反(有一个到期并在服务器端)是会话。 4.ViewState只能保存字符串或可序列化数据,而会话可以容纳大量类型的数据。这使得ViewState中的数据量与会话相比要小得多。 5.Session可以复制或访问新页面或窗口的数据,而ViewState不具备此功能。 6.Session将其数据存储在服务器内存中,而ViewState将其数据作为加密数据隐藏在浏览器的隐藏字段中。 7.由于服务器内存容纳不同类型的数据,大量存储的数据会影响服务器负载。