c# - Asp.Net ViewState 性能

标签 c# asp.net asp.net-controls state-management

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

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

最佳答案

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

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

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

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

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

关于c# - Asp.Net ViewState 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32286123/

相关文章:

c# - NamedPipeServerStream/NamedPipeClientStream 包装器

asp.net - "return View()"和 "return PatialView()"的任何区别仍在 MVC 3 中

ASP.NET MVC 身份数据库

asp.net - 将 'onClientClick' javascript 添加到 ASP.NET 登录控件

asp.net - 不指定控件 ID 的优点?

c# - 在 C# 中导致系统崩溃

c# - 如何在不知道要存储多少值的情况下创建数组?

asp.net - 如何从页面代码中的全局变量分配控件属性值?

c# - Azure Windows 8 身份验证

javascript - 检测元素何时将获得焦点