有人说类似gridview datalist这样的控件最好不要用在高并发,IO大的网站中
企业应用中为了快速开发到可以用一用
因为这是一类"沉重"的组件
我们姑且不谈这种看法的正确性(我个人觉得有道理)
只谈它为什么笨重:

因为这些控件给页面带来了大量的
viewstate
<input type="hidden" name="____VIEWSTATE" id="____VIEWSTATE" value=
这就是页面状态
一个页面里可能存在两种状态
控件状态,视图状态

page类是在
LoadPageStateFromPersistenceMedium()
SavePageStateToPersistenceMedium()
存取页面状态的
这两个方法都是可以重写的
他们也可以把状态信息存储在别的媒介中
我们这里通过重写PageStatePersister属性
来实现自己的状态存取逻辑

我们为了压缩viewstate里的数据,必须先实现一个工具类:如下

Code

下面重写PageStatePersister来实现自定义的页面状态存取

Code

项目的webconfig文件

Code

用来测试的一个页面

Code

用来测试的页面的cs文件
注意里面重写了PageStatePersister

Code

实验做完
大家运行一下就知道
定制出来的viewstate比自动生成的要小很多

最后评价一句
传输给客户的东西是少了许多
但是服务器的CPU要做的事情也多了
用与不用还要自己权衡

四:理解Page类的运行机制(例:基于PageStatePersister的页面状态存取)的更多相关文章

  1. 三:理解Page类的运行机制(例:在render方法中生成静态文件)

    我这里只写几个常用的事件1.OnPreInit:此事件后将加载个性化信息和主题2.OnInit:初始化页面中服务器控件的默认值但控件的状态没有加载,没有创建控件树3.OnPreLoad:控件完成状态和 ...

  2. 五:理解控件的运行机制(例:基于Control命名空间的简单控件)

    一:先用最简短的话说点理论的1.asp.net中所有的标准控件都可以重写 2.和控件相关的命名空间有 System.Web.UI.Control是所有控件的基类只提供简单的呈现逻辑,不支持样式表 Sy ...

  3. 六:理解控件的运行机制(例:基于WebControl命名空间的控件)

    Control类的Render方法在WebControl类中被被分成三部分1:RenderBeginTag,呈现标签的开始2:RenderContents,呈现标签的内容3:RenderEndTag, ...

  4. 七:理解控件的运行机制(例:基于CompositeControl命名空间的控件)

    组合控件与WebControl控件的事件和属性相差不大组合控件,顾名思义就是把一些控件组合起来形成一个控件这个控件将包含这些控件称为他的子控件 CompositeControl类实现了INameCon ...

  5. 二:理解ASP.NET的运行机制(例:基于HttpHandler的URL重写)

    url重写就是把一些类似article.aspx?id=28的路径重写成 article/28/这样的路径 当用户访问article/28/的时候我们通过asp.net把这个请求重定向到article ...

  6. 一:理解ASP.NET的运行机制(例:通过HttpModule来计算页面执行时间)

    一:简要介绍一下asp.net的执行步骤 1.IIS接收到客户请求 2. IIS把请求交给aspnet_isapi.dll处理 3.(如果是第一次运行程序)装载bin目录中的dll 4.(如果是第一次 ...

  7. 全面理解Java异常的运行机制

    1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单.听话. ...

  8. 一张图,理解JAVA体系结构、运行机制、JVN运行机制、Java平台(初学)

    初学JAVA,学一门语言不仅仅是学其语法,逻辑思维能力,还有每一门语言都有自己独特的一方面,所以才有那么多语言要学啊 = =,所以想要真的学好语言,其编译机制,运行机制多少也要涉猎一些啊.这是初学JA ...

  9. Hadoop学习之路(十四)MapReduce的核心运行机制

    概述 一个完整的 MapReduce 程序在分布式运行时有两类实例进程: 1.MRAppMaster:负责整个程序的过程调度及状态协调 2.Yarnchild:负责 map 阶段的整个数据处理流程 3 ...

随机推荐

  1. [leetcode]236. Lowest Common Ancestor of a Binary Tree二叉树最近公共祖先

      Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. Accordi ...

  2. 交叉编译sudo

    编译Sudo version 1.8.6p7下载路径:https://www.sudo.ws/news.html 1.交叉编译 # tar -xvf sudo-1.8.6p7.tar.gz # cd ...

  3. eclipse 安装lombok插件

    下载lombok 下载地址:https://projectlombok.org/downloads/lombok.jar 或者访问官网下载  https://projectlombok.org/ 安装 ...

  4. 贝叶斯---最大似然估计(高翔slam---第六讲 )

    1.贝叶斯---最大似然估计 回顾一下第二讲的经典SLAM模型: 通过传感器(例如IMU)的运动参数u来估计运动(位姿x)[定位],通过相机的照片的观测参数z来估计物体的位置(地图y)[建图],都是有 ...

  5. eclipse启动时出现无法创建java虚拟机

    最 近一直在用eclipse开发android程序,今天不知怎么的启动eclipse时就会出现Failed to create java virtual machine,无法打开eclipse程序,折 ...

  6. 团队-爬取豆瓣电影TOP250-代码设计规范

    队长博客:http://www.cnblogs.com/gengwenhao/

  7. ABP框架系列之三十二:(Logging-登录)

    Server Side(服务端) ASP.NET Boilerplate uses Castle Windsor's logging facility. It can work with differ ...

  8. python模块:xml

    """Core XML support for Python. This package contains four sub-packages: dom -- The W ...

  9. Maths | 离散K-L变换/ 主成分分析法

    目录 1. 概述 2. K-L变换方法和原理推导 2.1. 向量分解 2.2. 向量估计及其误差 2.3. 寻找最小误差对应的正交向量系 3. K-L变换高效率的本质 4. PCA在编.解码应用上的进 ...

  10. MFS故障测试及维护总结

    一.测试环境说明: 10.2.2.230 mfsmaster     VIP:10.2.2.130 10.2.2.231 mfsbackup 10.2.2.253 mfsdata01 10.2.2.2 ...