无聊时候写了一个 下图是没有存储viewstate到数据库时 下图是存储到数据库时候,大家可以比较一下性能。 至于页面大小也就不说了,大家都知道如果用一些诸如gridview控件的时候viewstate会相当大的。 web.config里面有两个键值,可以设置来决定是否要存储到数据库或者压缩。 <add key="StoreViewStateInDB" value="true"/> <add key="CompressViewState" value="true"/> 压缩方面还是用的SharpZipLib,一开始用里面的BZip,但是解压用Compress()这个方法老是报错。只能实例化inputstream outputstream解决,参考了codeproject.http://www.codeproject.com/KB/dotnet/mscompression.aspx 附上代码: http://iamtonyzhou/UploadFiles/ViewStatePractise.zip 提醒:如果存数据库的话需要有个SQL JOB去删除那些不需要的viewstate,可以根据时间判断,每15分钟或者每1小时等。 Job 的 Script,很简单。 USE [msdb] GO /****** Object: Job [Delete ViewState] Script Date: 01/07/2009 17:13:59 ******/ BEGIN TRANSACTION DECLARE @ReturnCode INT SELECT @ReturnCode = 0 /****** Object: JobCategory [Web Assistant] Script Date: 01/07/2009 17:13:59 ******/ IF [...]
