【问题标题】:Asp.Net ViewState performanceAsp.Net ViewState 性能
【发布时间】:2015-11-24 00:07:15
【问题描述】:

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

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

【问题讨论】:

  • 因为所有这些数据都需要发送到客户端,并在表单回发时发送回到服务器。在不需要时通过 Internet 连接来回传输大量数据会消耗性能。
  • @David,所以当页面被回发时,所有视图状态数据都被发送到服务器并返回到客户端。我说的对吗?
  • 如果您刚刚开始学习 ASP.NET,我建议您跳过所有 Web 表单,直接进入 MVC。这是一种更清洁、更健康的 Web 应用程序方法。现在也很时尚,支持也很好。

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


【解决方案1】:

对于 ViewState 是什么和做什么的所有描述,这一切都归结为它完全是一件事...... ViewState 是一堆数据,序列化,base-64 编码,并填充到 @987654321页面上的@元素。

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

因此,例如,如果 ViewState 包含 200KB 的数据,那么每次请求都会来回发送 200KB。 200KB 的隐藏信息,在页面呈现中不可见。可能不重要的数据。 (基本上,粗鲁。)

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

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

【讨论】:

    【解决方案2】:

    什么是视图状态以及它在 ASP.Net 中的工作原理

    Web 应用程序是无状态的。这意味着每次我们向服务器发出请求以获取页面时都会创建一个新的页面实例,并且在往返之后我们的页面会立即丢失。它只发生在一台服务器上,网页的所有控件都已创建,并且在往返之后服务器会销毁所有实例。因此,为了保留控件的值,我们使用状态管理技术。

    http://www.c-sharpcorner.com/UploadFile/225740/what-is-view-state-and-how-it-works-in-Asp-Net53/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多