ASP.NET MVC 如何实现头压缩
2012-12-25 11:38
253 查看
网页的头部压缩在页面体积大的情况下非常有必要做,它会使页面体积有一个明显的减小,同时加到网页从服务端下载到客户端的速度,以下是我做的一个测试:
没有使用头压缩时:
使用了头压缩后:
我们可以看到,网页的体积足足减少了6KB,这对于远程传输来说是很重要的,同时,页面下载到客户端的速度也由825MS提升到了753MS,可以说是一次不小的
飞跃!呵呵!
在MVC环境中,是如何实现的呢,如果不是全局的,可以建立一个过滤器(特殊),然后应用到action或者controller上就可以了,我们以这种方式为例,我来共享一
下代码:
将你希望对一组页面应用头压缩时,可以在Controller上加特性:
对于单个页面,可以直接到Action上加特性:
没有使用头压缩时:
使用了头压缩后:
我们可以看到,网页的体积足足减少了6KB,这对于远程传输来说是很重要的,同时,页面下载到客户端的速度也由825MS提升到了753MS,可以说是一次不小的
飞跃!呵呵!
在MVC环境中,是如何实现的呢,如果不是全局的,可以建立一个过滤器(特殊),然后应用到action或者controller上就可以了,我们以这种方式为例,我来共享一
下代码:
/// <summary> /// 页面头压缩 /// </summary> public class CompressAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { var acceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"]; if (!string.IsNullOrEmpty(acceptEncoding)) { acceptEncoding = acceptEncoding.ToLower(); var response = filterContext.HttpContext.Response; if (acceptEncoding.Contains("gzip")) { response.AppendHeader("Content-encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } else if (acceptEncoding.Contains("deflate")) { response.AppendHeader("Content-encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } } } }
将你希望对一组页面应用头压缩时,可以在Controller上加特性:
[CompressAttribute] public partial class ProductController : BaseController { //... }
对于单个页面,可以直接到Action上加特性:
[CompressAttribute] public ActionResult Item(int id, int? grade, int? category) { //... }
相关文章推荐
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
- MVC学习十四:ASP.NET MVC如何实现自定义验证 AgeRangeAttribute
- ASP.NET WebForm Form表单如何实现MVC那种“自动装配”效果呢?
- ASP.NET WebForm Form表单如何实现MVC那种“自动装配”效果呢?
- ASP.NET MVC 中如何实现基于角色的权限控制
- ASP.NET MVC中如何实现页面跳转
- asp.net mvc当出现错误时如何实现友好错误提示
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
- 如何实现IEnumerable<T>和IEnumerator接口,一个ASP.NET MVC日志模型的实现
- 如何用MEF实现Asp.Net MVC框架
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
- ASP.NET MVC如何使用Unity实现Ioc详解
- asp.net mvc浏览器缓存和压缩的实现
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
- 如何用MEF实现Asp.Net MVC框架
- ASP.NET WebForm Form表单如何实现MVC那种“自动装配”效果呢?
- ASP.NET MVC AJAX实现 以及如何处理json数据,简介
- asp.net mvc如何实现下载文件
- ASP.NET MVC 中如何实现基于角色的权限控制