有人说类似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要做的事情也多了
用与不用还要自己权衡