zoukankan      html  css  js  c++  java
  • 页面瘦身之压缩viewState和保存viewState到服务器

    项目报表页面viewState大小超过200K,页面体积很大,必须得将之瘦身,现在很流行身材苗条。。。。。 44

    执行之前

    先重载Page中的两个方法:

    1、SavePageStateToPersistenceMedium

    SavePageStateToPersistenceMedium 方法使用 PageStatePersister 属性所引用的 System.Web.UI.PageStatePersister 对象的 Save 方法存储页的视图状态和控件状态信息。

    ASP.NET 包括 PageStatePersister 类的两个子类:在 ASP.NET 页包含的隐藏字段中保存状态信息的 HiddenFieldPageStatePersister 类和在与请求关联的 Session 对象中保存状态的 SessionPageStatePersister 类。 注意,使用SessionPageStatePersister 类时,隐藏的 VIEWSTATE 字段仍将像用于确定回发时那样呈现。

    若要在您选择的位置保存状态,应创建 PageStatePersister 类的新子类,它可将状态保存并加载到您所选择的持久性介质中。 有关创建新的 PageStatePersister 对象的示例,请参见 PageStatePersister 类。

    使用 .NET Framework 1.0 版或 1.1 版时,如果要从隐藏字段外的其他任何位置保存 Page 状态,则请重写此方法。 如果选择这样做,还必须重写 LoadPageStateFromPersistenceMedium 方法。

    2、LoadPageStateFromPersistenceMedium

    LoadPageStateFromPersistenceMedium 方法使用 PageStatePersister 属性所引用的 System.Web.UI.PageStatePersister 对象的 Load 方法来为 Page 对象加载任何保存的视图状态信息。

    ASP.NET 包括 PageStatePersister 类的两个子类:在 ASP.NET 页包含的隐藏字段中保存状态信息的 HiddenFieldPageStatePersister 类和在与请求关联的 Session 对象中保存状态的 SessionPageStatePersister 类。

    若要在您选择的位置保存状态,应创建 PageStatePersister 类的新子类,它可将状态保存并加载到您所选择的持久性介质中。 有关创建新的 PageStatePersister 对象的示例,请参见 PageStatePersister 类。

    使用 .NET Framework 1.0 版或 1.1 版时,如果要从隐藏字段外的其他任何位置加载 Page 状态,则请重写此方法。 如果选择这样做,还必须重写 SavePageStateToPersistenceMedium 方法。

    一、压缩viewState

    先准备GZipHelper类

    GZipHelper

    重载SavePageStateToPersistenceMedium

    SavePageStateToPersistenceMedium


    重载LoadPageStateFromPersistenceMedium

    LoadPageStateFromPersistenceMedium

    结果:较以前页面大小减少了50%,但是所耗CPU要大,耗时要长。

     

    二、保存viewState到服务器

     

    Save

    结果:ViewState从原来的保存在页面变成保存到了服务器,页面viewState大小为0,大大减少页面大小。但是要多做一个清除服务器历史viewstate数据操作。

  • 相关阅读:
    HBase的完全分布式搭建
    研究Zookeeper的原理(二)
    研究Zookeeper的原理(一)
    zookeeper集群的搭建
    Hadoop之伪分布式安装
    MySQL忘记密码(终极解决方法,亲测有效,windows版本)
    MySQL重置密码(liunx)
    disconf---分布式配置管理平台的搭建(linux版本)
    zookeeper的安装(单机版)
    Redis搭建一主一从及哨兵模式(二)
  • 原文地址:https://www.cnblogs.com/ivanyb/p/2274848.html
Copyright © 2011-2022 走看看