zoukankan      html  css  js  c++  java
  • ASP.NET MVC 如何实现头压缩

    网页的头部压缩在页面体积大的情况下非常有必要做,它会使页面体积有一个明显的减小,同时加到网页从服务端下载到客户端的速度,以下是我做的一个测试:

    没有使用头压缩时:

    使用了头压缩后:

    我们可以看到,网页的体积足足减少了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)
       {
            //...   
       }
    

      

  • 相关阅读:
    解决Windows Server2008 R2中IE开网页时弹出阻止框
    为Java说句公道话
    垃圾回收(GC)的三种基本方式
    偏执却管用的10条Java编程技巧
    学习Javascript的8张思维导图【收藏】
    Java 常见异常及趣味解释
    Java程序员们最常犯的3个集合错误
    浅谈jsp、freemarker、velocity区别
    ThreadLocal使用
    javascript 之闭包
  • 原文地址:https://www.cnblogs.com/haiyabtx/p/2832088.html
Copyright © 2011-2022 走看看