Asp.Net ViewState 性能

Ome*_*r K 4 c# asp.net state-management asp.net-controls

我是 Asp.Net 的新手。我有一个关于视图状态控件的问题。msdn 说它作为客户端状态管理,但建议如果由于性能问题页面上有大数据,可以禁用它。

那么,如果这是客户端状态,它如何影响站点的页面加载时间?

Dav*_*vid 6

对于 ViewState 是什么和做什么的所有描述,归根结底是它完全是一件事...... ViewState 是一堆数据,序列化,base-64 编码,并填充到input type="hidden"页面上的元素中。

每次将页面呈现给客户端时,都会将 ViewState 发送到客户端。每次客户端将表单发布到服务器时,都会将 ViewState 发送到服务器。

因此,如果 ViewState 包含例如 200KB 的数据,那么每个请求都会来回发送 200KB。200KB 的隐藏信息,在页面渲染中看不到。可能不重要的数据。(基本上,cruft。)

每次请求都需要来回发送所有这些数据吗?偶尔可能会很方便,但是每个请求都需要管理所有这些状态吗?机会是,可能不是。因此,您可以通过不在页面中管理该状态并为某些页面元素适当禁用 ViewState 来调整性能。

有些状态可以完全在服务器端管理,有些可以在其他页面元素中更隐式地管理,有些根本不需要管理。(由于 Web 应用程序被设计为无状态的,如果您可以管理它,最后一个选项是理想的。)