Ome*_*r K 4 c# asp.net state-management asp.net-controls
我是 Asp.Net 的新手。我有一个关于视图状态控件的问题。msdn 说它作为客户端状态管理,但建议如果由于性能问题页面上有大数据,可以禁用它。
那么,如果这是客户端状态,它如何影响站点的页面加载时间?
对于 ViewState 是什么和做什么的所有描述,归根结底是它完全是一件事...... ViewState 是一堆数据,序列化,base-64 编码,并填充到input type="hidden"页面上的元素中。
每次将页面呈现给客户端时,都会将 ViewState 发送到客户端。每次客户端将表单发布到服务器时,都会将 ViewState 发送到服务器。
因此,如果 ViewState 包含例如 200KB 的数据,那么每个请求都会来回发送 200KB。200KB 的隐藏信息,在页面渲染中看不到。可能不重要的数据。(基本上,cruft。)
每次请求都需要来回发送所有这些数据吗?偶尔可能会很方便,但是每个请求都需要管理所有这些状态吗?机会是,可能不是。因此,您可以通过不在页面中管理该状态并为某些页面元素适当禁用 ViewState 来调整性能。
有些状态可以完全在服务器端管理,有些可以在其他页面元素中更隐式地管理,有些根本不需要管理。(由于 Web 应用程序被设计为无状态的,如果您可以管理它,最后一个选项是理想的。)