【问题标题】:How to minimize viewstate size of a page in asp.net?如何最小化asp.net中页面的视图状态大小?
【发布时间】:2009-10-10 09:56:12
【问题描述】:

如何在 asp.net 中最小化页面的视图状态大小? 请帮忙。

【问题讨论】:

    标签: asp.net viewstate


    【解决方案1】:

    你有几个选项来减少 ViewState:

    • 对不需要的控件禁用 ViewState(这是最有效的解决方案)。例如。如果您可以在服务器上缓存一些数据,那么您可以为每个请求重新绑定任何数据绑定控件,并且不需要将所有内容保存在 ViewState 中。
    • 在服务器 (IIS) 上打开 HTTP 压缩。这会减小发送到客户端的页面大小,包括 ViewState。
    • 压缩 ViewState。这比 HTTP 压缩有一个额外的优势:它还减少了 PostBacks(发送回服务器的数据)的大小,因为 ViewState 在 PostBack 期间总是被发送回服务器。有多种方法可以解决这个问题,例如如this blog post所示。
    • 将 ViewState 存储在服务器上,而不是将其与页面一起发送到隐藏字段中。最简单的方法是使用SesionPageStatePersister,但还有其他解决方案将 ViewState 存储到磁盘而不是使用 Session (see here for example)。

    【讨论】:

    • 很好的答案!谢谢!但即使存储视图状态服务器端或压缩它可能是好方法,在我看来,减小它的大小的最简单方法仍然是禁用不需要视图状态的控件
    【解决方案2】:

    大多数观点在其他答案中突出显示。这里有一个可能会有所帮助:

    减少服务器控件(例如 web/html 控件)的数量,尤其是那些您不需要的控件。请改用简单的 HTML 标记。

    我见过太多多余的表格/行/单元格 Web 控件的案例,而普通的

    、 和
    都可以。

    【讨论】:

      【解决方案3】:

      您不能最小化 ViewState 的大小。它是序列化/反序列化的 ASP.NET。尽管您可以选择性地为不需要的控件禁用 ViewState。

      【讨论】:

      • 您可以将其压缩并保存在自己的表单域中
      【解决方案4】:

      我选择将服务器上的视图状态保存在数据库本身中,并且不允许它在 HTML 中传递给客户端,这会增加页面大小。您可以扩展 HiddenFieldPageStatePersister 并解决此问题。如果您愿意,我已经写了一篇详细的文章...

      http://ashishnangla.com/2011/07/21/reducing-size-of-viewstate-in-asp-net-webforms-by-writing-a-custom-viewstate-provider-pagestatepersister-part-12/

      【讨论】:

      • 死链接死链接
      【解决方案5】:

      您可以在服务器上打开压缩以最小化通过网络传输的数据大小,或者将 viewState 保存到磁盘而不将其发送到客户端。

      【讨论】:

        【解决方案6】:
           protected override PageStatePersister PageStatePersister
            {
                get
                {
                    return new SessionPageStatePersister(this);
                }
            }
        

        在生成大视图状态值的页面后面的代码中添加上述代码。这允许将视图状态存储在会话中。现在应该只添加视图状态的键。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多