Lose.zhang 发表于 2013-1-3 17:29:14

将不确定变为确定~头压缩是否有必要,MVC如何实现头压缩

<div id="cnblogs_post_body">网页的头部压缩在页面体积大的情况下非常有必要做,它会使页面体积有一个明显的减小,同时加到网页从服务端下载到客户端的速度,以下是我做的一个测试:
没有使用头压缩时:
http://www.agoit.com/bbs/data:image/png;base64,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
使用了头压缩后:
http://www.agoit.com/bbs/data:image/png;base64,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
我们可以看到,网页的体积足足减少了6KB,这对于远程传输来说是很重要的,同时,页面下载到客户端的速度也由825MS提升到了753MS,可以说是一次不小的
飞跃!呵呵!
在MVC环境中,是如何实现的呢,如果不是全局的,可以建立一个过滤器(特殊),然后应用到action或者controller上就可以了,我们以这种方式为例,我来共享一
下代码:
<div class="cnblogs_code"> 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   }
页: [1]
查看完整版本: 将不确定变为确定~头压缩是否有必要,MVC如何实现头压缩