我理解使用View状态。任何谈论视图状态的材料都解释了它的需要和用法。但是,在每个控制级别/页面级别都提供了一个选项来禁用它。
在什么情况下我们可能想要禁用页面或控件的视图状态?
从在线资料中,我读到了,
如果页面没有任何动态数据,则要保留数据 在往返之间我们可以禁用viewstate。
我同意这个说法,但这样做有什么好处?我们从中获得了什么?
答案 0 :(得分:4)
有些网页拥有巨大的观看状态。因此,来回发送需要时间,服务器上的负载更多,网络流量更多等等。很多时候都不需要它,所以通过缩小您的视图状态,您的应用程序会更快。
请注意,即使完全禁用viewstate,由于控制要求,有时也会生成一个小的必需视图状态,但它可以大大减少。我看过每个页面的观看状态达到200kb。
答案 1 :(得分:2)
实际上,您可以通过禁用ViewState的加密来提高性能,但这不是一个好的安全措施。
答案 2 :(得分:1)
由于页面必须将ViewState呈现给客户端,因此如果禁用ViewState,它可以加快加载时间。
大约介绍.Net的时候,我记得在拍摄一个缓慢加载的页面时出现问题,页面渲染了一个相当大的网格,所有这些网格都保存在ViewState中。从ViewState中删除数据产生了很大的不同。
答案 3 :(得分:1)
ViewState呈现为网页中的隐藏输入字段。这会使页面加载速度变慢,并且还会使回发速度变慢,因为ViewState必须与其他所有内容一起发布。
因此,如果禁用ViewState,页面的执行速度会更快。多快了?很难说。
通常,如果您不需要ViewState,请将其禁用。
另请注意,即使您禁用ViewState,仍然会有一个隐藏控件,其中包含.NET所需的少量数据。
答案 4 :(得分:1)
当我以asp:Label或asp:Literal控件向用户显示信息或错误消息时,我几乎总是将EnableViewState设置为false,因为它们几乎总是只应用于给定的回发。将EnableViewState设置为false意味着我永远不必在我的代码隐藏中写这个:
lblSomethingWentWrong.Text = string.Empty;