首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

.NET 輸出重寫壓縮 HTML:頁面基類移除空白字符優化體積

     編輯:ASP.NET 基礎

原理

重寫 `Page.Render` 方法,攔截輸出流,用正則表達式移除多餘空白(換行、製表、多重空格),減小 HTML 體積,提升傳輸速度。開發時源碼保持可讀,運行時自動壓縮。

頁面基類代碼

using System;
using System.Web.UI;
using System.IO;
using System.Text.RegularExpressions;

public class PageBase : Page
{
    protected override void Render(HtmlTextWriter writer)
    {
        using (StringWriter sw = new StringWriter())
        using (HtmlTextWriter htmlWriter = new HtmlTextWriter(sw))
        {
            base.Render(htmlWriter); // 先讓頁面正常渲染到內存
            string html = sw.ToString();

            // 移除 \f \v (頁面換頁、垂直製表) 等控制字符
            html = Regex.Replace(html, @"[\f\v]", "");
            // 多個空格合併為單個
            html = Regex.Replace(html, @" {2,}", " ");
            // 標籤結尾 '>' 後的單個空格移除
            html = Regex.Replace(html, @">\s+<", "><");
            // 也可選擇移除註釋:html = Regex.Replace(html, @"", "", RegexOptions.Singleline);

            writer.Write(html);
        }
    }
}

使用方式

所有頁面繼承 `PageBase` 而非 `System.Web.UI.Page`:

public partial class MyPage : PageBase { ... }

注意事項與改進

  • pre/script/textarea 保護:上述正則會破壞 `
    `、`
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved