分享:ViewState压缩方法
在使用 Asp.net WebForm进行开发中我一般会在自定义页面基类(BasePage)中进行ViewState的压缩, 注:此方法为网上收集,功能挺实用的。
压缩代码:
/// <summary>/// 压缩数据/// </summary>/// <param name="data"></param>/// <returns></returns>public byte[] Compress(byte[] data){MemoryStream ms = new MemoryStream();GZipStream stream = new GZipStream(ms, CompressionMode.Compress);stream.Write(data, 0, data.Length);stream.Close();return ms.ToArray();}/// <summary>/// 解压数据/// </summary>/// <param name="data"></param>/// <returns></returns>public byte[] Decompress(byte[] data){MemoryStream ms = new MemoryStream();ms.Write(data, 0, data.Length);ms.Position = 0;GZipStream stream = new GZipStream(ms, CompressionMode.Decompress);MemoryStream temp = new MemoryStream();byte[] buffer = new byte[1024];while (true){int read = stream.Read(buffer, 0, buffer.Length);if (read <= 0){break;}else{temp.Write(buffer, 0, buffer.Length);}}stream.Close();return temp.ToArray();}
在页面的基类中的代码:
/// <summary>/// 重载SavePageStateToPersistenceMedium/// <remarks>/// 将viewstate进行压缩/// </remarks>/// </summary>/// <param name="state"></param>protected override void SavePageStateToPersistenceMedium(object state){LosFormatter formatter = new LosFormatter();StringWriter writer = new StringWriter();formatter.Serialize(writer, state);string viewState = writer.ToString();byte[] data = Convert.FromBase64String(viewState);byte[] compressedData = this.Compress(data);string str = Convert.ToBase64String(compressedData);ClientScript.RegisterHiddenField("__MYVIEWSTATE", str);}/// <summary>/// 重载LoadPageStateFromPersistenceMedium/// <para>将viewstate进行解压缩</para>/// </summary>/// <returns></returns>protected override object LoadPageStateFromPersistenceMedium(){string viewstate = Request.Form["__MYVIEWSTATE"];byte[] data = Convert.FromBase64String(viewstate);byte[] uncompressedData =this.Decompress(data);string str = Convert.ToBase64String(uncompressedData);LosFormatter formatter = new LosFormatter();return formatter.Deserialize(str);}
代码比较简单,所以不写注释。
压缩效率可将Viewstate减小50%左右。(非精确值,估计的大概值);
上面代码我都写在BasePage基类中。
转载于:https://www.cnblogs.com/easeyeah/archive/2012/02/29/2373057.html
分享:ViewState压缩方法相关推荐
- 如何把照片进行压缩?好用的压缩方法分享
照片的内存太大,我们怎么才能把照片给压缩一下呢?相信这个问题困扰了很多的小伙伴,尤其是第一次遇到这种情况,就会更加手足无措.实际上,遇到这种问题还是很常见的,如照片内存太大就会上传不了,或者是占用太多 ...
- python如何压缩pdf_如何压缩PDF文件?分享4种高效压缩方法!
原标题:如何压缩PDF文件?分享4种高效压缩方法! 在我们日常学习和日常工作中,我们时常会用到PDF文件,我们时常会发送PDF文件.但是如果PDF文件过大的话,上传就会受到影响,那么如何将PDF文件的 ...
- 手机如何压缩照片?压缩方法分享
怎么用手机来压缩照片呢?大家在使用照片的时候,也会遇到很多问题,有的是照片的格式不对,有的是照片的内存太大上传不了,或者是占用了太大的内存,针对照片内存太大我们怎么才能将它们给压缩一下呢?很多小伙伴不 ...
- 图片怎么在线压缩?图片在线压缩方法分享
通过压缩图片,可以减小图片的大小,从而减少所需的存储空间.这对于在有限存储空间的设备上存储大量照片和视频非常有用.此外,还可以减少在设备之间传输和处理图片所需的时间和精力,从而提高工作的效率.特别是在 ...
- 怎样压缩图片?好用的图片压缩方法分享
怎么把图片给压缩一下呢?压缩图片可以减小图片文件大小,从而节省存储空间和加快图片加载速度.这可以提高网站的加载速度和用户体验,特别是在移动设备上.压缩图片还可以减少网络流量和带宽的使用,节省服务器成本 ...
- Adobe Acrobat DC压缩方法以及网站分享
上一篇分享了安装方法 这一篇顺便就把Adobe Acrobat DC压缩方法分享一下吧~ 一.Adobe Acrobat DC压缩方法 这是我本来的文件: 具体操作方法,即" 文件-另存为其 ...
- word文档太大如何压缩变小?今天分享3个压缩方法
word文档是我吗在工作和生活中使用频率很高的文件,但是我们会遇到word文档太大导致无法打开和无法分享的情况,那么我们需要将word文档压缩变小.当word文档压缩变小之后,不仅可以节省我们磁盘空间 ...
- ACL 2020 | MobileBERT:一种与任务无关的模型压缩方法
©PaperWeekly 原创 · 作者|蔡杰 学校|北京大学硕士生 研究方向|问答系统 论文标题:MobileBERT: a Compact Task-Agnostic BERT for Resou ...
- BERT-of-Theseus:基于模块替换的模型压缩方法
©PaperWeekly 原创 · 作者|苏剑林 学校|追一科技 研究方向|NLP.神经网络 最近了解到一种称为"BERT-of-Theseus"的 BERT 模型压缩方法,来自论 ...
- 电脑上怎么做pdf文件_PDF压缩文件怎么压缩最小?请收好这些PDF压缩方法
刚才想把手头上的一份PDF文件发给同事,直接拖进窗口就显示文件太大,超出了大小限制.还好我平时经常要处理PDF文件,这种情况下将PDF文件压缩一下就可以了.PDF文件怎么进行压缩呢?下面我就把常用的P ...
最新文章
- 了解大脑的“小情绪”,轻松成为“效率达人”
- [云炬python3玩转机器学习笔记] 3-2 Jupter Notebook魔法命令
- docker多个容器一起打包_如何链接多个Docker容器并封装结果?
- Java代理模式及其应用
- 大咖联袂发布 《慧技术·惠金融——2022金融科技趋势研究报告》开放下载
- 大数据、云计算、人工智能的融合应用分析
- 注销公司是否需要办理注销呼叫中心许可证?
- 快看!RobotArt如何降服四轴机器人?
- java实验报告6:异常处理程序设计
- centos7安装Kafka Eagle
- 南卫理公会大学 计算机排名,南卫理公会大学美国大学排名及专业排名汇总(USNEWS美国大学排名版)...
- 深入SpringBoot核心注解原理
- 如何设置chrome google浏览器字体
- [CodeForces877 E. Danil and a Part-time Job]dfs序+线段树
- 电脑中了virus.win32.sality.i和virus.win32.pioneer.c病毒,导致所以的EXE文件打不开(打开浏览器会提示:xc0000005异常)
- xshell开启终端256色(转)
- 如何独立开发一款 macOS 应用:从概念到上线
- python应用领域有开发操作系统吗_python 全栈开发,Day37(操作系统的发展史)
- 观点丨人工智能时代的区块链技术
- java中PageInfo类的作用及用法