刚才不小心检查了一下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)
}
//
}
至此大功告成让我们重新看看页面的输出哇塞讨厌的空格果然变少了