zoukankan      html  css  js  c++  java
  • .NET MVC 简单实现GZIP

        GZIP的好处大家都知道,不过一般系统来说页面不会太大,很多人也没注意过这玩意儿。前段时间做一个系统用了一个国人开发的JQUERY富客户端框架DWZ(个人感觉这个框架还是蛮不错的),类似EXT的AJAX框架,框架的JS加上我自己的真不小。

       打算用GZIP来做压缩,之前在IIS6上做过,这个项目用MVC做,发现在.NET MVC下有更简单好用的办法来解决:写一个ActionFilter来实现GZIP,优点大家用了就知道,呵呵

        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);
                    }
                }
            }
        }
    

    用法: 

            [Longin]
            [Compress]
            public ActionResult Index()
            {
                
                    return View();
            }
    

    只要在打算用GZIP压缩的Action上写上[Compress]就OK了,是不是很简单,呵呵~

  • 相关阅读:
    Linux下安装漏洞扫描工具Nessus
    【译】使用OpenVAS 9进行漏洞扫描
    MD5小彩虹表
    获取某个版本软件存在的漏洞信息
    【译】使用chage来管理Linux密码过期时间的七个例子
    [转]Centos 安装Sublime text 3
    Nessus扫描策略
    Nginx使用笔记
    SSH 公钥登录
    MySQL加密
  • 原文地址:https://www.cnblogs.com/zhaojingjing/p/1940357.html
Copyright © 2011-2022 走看看