首页 > 代码库 > ASP.NET MVC 3 网站优化总结(六)压缩 HTML

ASP.NET MVC 3 网站优化总结(六)压缩 HTML

压缩 html 可以去除代码中无用的空格等,这样可提高网站的加载速度并节省带宽。今天就让我们看看在 ASP.NET MVC 3 怎么实现 html 压缩,我们可通过实现 ActionFilter 来完成 html 的压缩。

其实我们在 ASP.NET MVC 3 网站优化总结(一) 使用 Gzip 压缩这篇文章中使用的就是这种方法,主要看看实现的 FilterAttribute 类:

public class WhitespaceFilterAttribute : ActionFilterAttribute{    public override void OnActionExecuting(ActionExecutingContext filterContext)    {        var request = filterContext.HttpContext.Request;        var response = filterContext.HttpContext.Response;        response.Filter = new WhiteSpaceFilter(response.Filter, s =>        {            s = Regex.Replace(s, @"\s+(?=<)|\s+$|(?<=>)\s+", "");            //single-line doctype must be preserved            var firstEndBracketPosition = s.IndexOf(">");            if (firstEndBracketPosition >= 0)            {                s = s.Remove(firstEndBracketPosition, 1);                s = s.Insert(firstEndBracketPosition, ">");            }            return s;        });    }}

使用时在 Action 方法上添加 Filter 属性即可,如下:

[WhitespaceFilter]public ActionResult Index(string id){    return View();}

我主要修改了下作者使用的正则,因为原正则会将<pre></pre>中的空格也进行替换,并指定编码为 UTF-8。

这样就在 ASP.NET MVC 3 中实现了 html 的压缩,大家可以下载 WhiteSpaceFilter.rar 类来自己试试!

 

ASP.NET MVC 3 网站优化总结(六)压缩 HTML