剛才不小心檢查了一下ASPNET生成的代碼驚訝地發現ASPNET輸出的代碼居然如此地不緊湊在標簽之間有無數的空格和制表符(TAB)特別是用了嵌套表格之後那景象真是慘不忍睹啊有圖為證
照理說在ASPNET生成的代碼中添加這麼多無用的空格/tab可能是為了使生成的HTML代碼更具可讀性但是由此帶來的問題就是使輸出的代碼變大了在帶寬有限的今天簡直就是一種犯罪浪費用戶的錢財影響用戶的體驗嘛!而且ASPNET屬於服務器端編程不可能會直接編輯最終生成的HTML代碼就算把所有的空格/Tab都去了也不會帶來任何不好的影響的吧!?
基於以上考慮祭出Reflector果然發現HtmlTextWriter中有Indent屬性控制著縮進大小而且幸運的是該屬性還是public類型的真是天助我也花了幾分鐘時間搗鼓出如下代碼 public class FilterHtmlTextWriter HtmlTextWriter
{
public FilterHtmlTextWriter(TextWriter writer string tabString)
base(writer tabString)
{
}
public new int Indent
{
get { return } // 始終返回
set { baseIndent = } // 始終置
}
}
然後重載頁面的Render方法(如果所有頁面有公共的基類的話就更好了)加入一行代碼如下
public partial class _Default SystemWebUIPage
{
protected override void Render(HtmlTextWriter writer)
{
// 替換writer為我們自定義的類
writer = new FilterHtmlTextWriter(writerInnerWriter )
baseRender(writer)
}
//
}
至此大功告成讓我們重新看看頁面的輸出哇塞討厭的空格果然變少了
From:http://tw.wingwit.com/Article/program/net/201311/12821.html