将不确定变为确定~头压缩是否有必要,MVC如何实现头压缩
网页的头部压缩在页面体积大的情况下非常有必要做,它会使页面体积有一个明显的减小,同时加到网页从服务端下载到客户端的速度,以下是我做的一个测试:
没有使用头压缩时:
使用了头压缩后:
我们可以看到,网页的体积足足减少了6KB,这对于远程传输来说是很重要的,同时,页面下载到客户端的速度也由825MS提升到了753MS,可以说是一次不小的
飞跃!呵呵!
在MVC环境中,是如何实现的呢,如果不是全局的,可以建立一个过滤器(特殊),然后应用到action或者controller上就可以了,我们以这种方式为例,我来共享一
下代码:
1 /// <summary> 2 /// 页面头压缩 3 /// </summary> 4 public class CompressAttribute : ActionFilterAttribute 5 { 6 public override void OnActionExecuting(ActionExecutingContext filterContext) 7 { 8 var acceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"]; 9 if (!string.IsNullOrEmpty(acceptEncoding)) 10 { 11 acceptEncoding = acceptEncoding.ToLower(); 12 var response = filterContext.HttpContext.Response; 13 14 if (acceptEncoding.Contains("gzip")) 15 { 16 response.AppendHeader("Content-encoding", "gzip"); 17 response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); 18 } 19 else if (acceptEncoding.Contains("deflate")) 20 { 21 response.AppendHeader("Content-encoding", "deflate"); 22 response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); 23 } 24 } 25 } 26 }
将你希望对一组页面应用头压缩时,可以在Controller上加特性:
1 [CompressAttribute] 2 public partial class ProductController : BaseController 3 { 4 //... 5 }
对于单个页面,可以直接到Action上加特性:
1 [CompressAttribute] 2 public ActionResult Item(int id, int? grade, int? category) 3 { 4 //... 5 }
本文转自博客园张占岭(仓储大叔)的博客,原文链接:将不确定变为确定~头压缩是否有必要,MVC如何实现头压缩,如需转载请自行联系原博主。
将不确定变为确定~头压缩是否有必要,MVC如何实现头压缩相关推荐
- java对象头_浅谈java对象结构 对象头 Markword
概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...
- C语言霍夫曼编码压缩,数据结构大作业——哈夫曼编码压缩BMP格式文件
数据结构大作业--哈夫曼编码压缩BMP格式文件 首先需要了解BMP图像格式 BMP图像格式详解 其次需要了解哈夫曼编码如何对BMP文件进行压缩 哈夫曼压缩与解压缩 编程部分 使用的头文件 虽然这里用了 ...
- java的头怎么写_JAVA对象布局之对象头(Object Header)
由于Java面向对象的思想,在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能 .在学习并发编程知识synchronized时,我们总是难以理解其实 ...
- java对象头markword_浅谈java对象结构 对象头 Markword
概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...
- linux系统如何开启网页是否压缩,Windows或Linux下Apache开启GZIP压缩 | kTWO-个人博客...
在搭建web服务器的时候有时因为服务器带宽比较小,而网站内容较多,内容加载较慢,此时建议站长们开启Apache的GZIP压缩功能,注意:开启GZIP之后会增加服务器的压力,不过一般服务器还是可以承受的 ...
- Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型
Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型 原文:https://blog.csdn.net/u011808673/article/details/8079 ...
- unity 纹理压缩格式‘_[2018.1]Unity贴图压缩格式设置
一.移动平台GPU 参考文档: 各种移动GPU压缩纹理的使用方法 - LuMing - 博客园www.cnblogs.com 1.Imagination Technologies的PowerVR S ...
- 利用WinRAR命令行压缩文件或文件夹2007-11-14 15:07压缩文件夹
利用WinRAR命令行压缩文件或文件夹 2007-11-14 15:07 压缩文件夹winrar.exe a -ag -k -r -s -ibck c:/bak.rar c:/dat/ 压缩多个文件 ...
- linux压缩和打包的区别,Linux中的压缩和打包
使用gzip命令可以将一个文件完成压缩 gzip services##压缩Services文件,压缩文件的名称是services.gz,注意,压缩完成之后原文件不在了 gunzip services# ...
最新文章
- Ubuntu 更新后 VirtualBox 无法启动
- Spring4.X系列之Spring JDBC
- 用ASP实现隐藏链接方法
- 飞桨第三课2020.4.2
- linux elf 视频,linux 实例讲解elf文件
- 雷云驱动2从云服务器,雷蛇云驱动 2 for mac(Mac雷蛇鼠标驱动设置工具)V1.88 官方版...
- 安装配置OOS2016
- 全球与中国一体化VR摄影机市场现状及未来发展趋势2022-2028
- 计算机打开文件的原理,电脑删除文件是怎么实现的?它的原理是什么?
- 系统分析与设计之用例图
- 【Electron-Vue】构建桌面应用(40)- Electron程序未响应
- 官宣, CSDN 2018博客之星获奖名单!
- Android软键盘手动显示、隐藏、布局上移和EditText上移
- js渲染10万数据列表,不阻塞UI
- TCP 三次握手的原因是什么?
- 热电偶测温专用芯片介绍
- (筆記) 如何使用Debussy與ModelSim做Co-Simulation? (SOC) (Verilog) (VHDL) (Debussy) (ModelSim)
- 35-Figma-Figma自带切图工具使用
- 刚进入软件测试的行业,就我学习到的关于软件测试的基础知识做以下总结。...
- 开发自己的脚手架(Rollup+Typescript)-(03)-(CAC 命令行交互)
热门文章
- html中表格与字对齐,html – 中心与表格单元格对齐
- java还值_Java到底是引用传递还是值传递
- java c标签 if有值_c标签 if else c标签 总结
- 计算机二级vb2003年4月考试题,2003年4月全国计算机等级考试二级vb笔试真题附答案...
- oracle截取时间函数6,SQL 取日期部分函数
- java堆外内存溢出_JVM 案例 - 堆外内存导致的溢出错误
- 【JAVA基础篇】内部类
- java线程同步的实现_【Java多线程系列三】实现线程同步的方法
- jsp中String path = request.getContextPath()的作用
- C语言(CED)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。