ASP.NET MVC 3サイト最適化まとめ(六)圧縮HTML


htmlを圧縮すると、コードの無駄なスペースなどを取り除くことができ、Webサイトのロード速度を向上させ、帯域幅を節約することができます.今日は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();
}

著者の記事を見てみましょうNET MVC ActionFilter、私は主に以下の著者が使用する正則を修正しました.元の正則は
のスペースも置き換えられ、UTF-8として符号化されるからです.
これでASP.NET MVC 3でhtmlの圧縮が実現し、WhiteSpaceFilterをダウンロードできます.rar類は自分でやってみよう!
原文住所:http://www.lidongkui.com/asp-net-mvc-3-website-optimization-summary-minify-html