| [组图]过滤ASP.NET输出HTML中的无用空格 |
★★★ |
| 过滤ASP.NET输出HTML中的无用空格 |
|
| |
|
|
刚才“不小心”检查了一下ASP.NET生成的代码,惊讶地发现ASP.NET输出的代码居然如此地不紧凑,在标签之间有无数的空格和制表符(TAB),特别是用了嵌套表格之后,那景象真是惨不忍睹啊,有图为证:
 照理说在ASP.NET生成的代码中添加这么多无用的空格/tab可能是为了使生成的HTML代码更具可读性,但是由此带来的问题就是使输出的代码变大了,在带宽有限的今天简直就是一种犯罪,浪费用户的钱财,影响用户的体验嘛!而且ASP.NET属于服务器端编程,不可能会直接编辑最终生成的HTML代码,就算把所有的空格/Tab都去了,也不会带来任何不好的影响的吧!?
基于以上考虑,祭出Reflector,果然发现HtmlTextWriter中有Indent属性控制着缩进大小,而且幸运的是该属性还是public类型的,真是天助我也,花了几分钟时间,捣鼓出如下代码: 1 public class FilterHtmlTextWriter : HtmlTextWriter 2 { 3 public FilterHtmlTextWriter(TextWriter writer, string tabString) 4 : base(writer, tabString) 5 { 6 } 7 8 public new int Indent 9 { 10 get { return 0; } // 始终返回0 11 set { base.Indent = 0; } // 始终置0 12 } 13 } 然后重载页面的Render方法(如果所有页面有公共的基类的话就更好了),加入一行代码,如下: 1 public partial class _Default : System.Web.UI.Page 2 { 3 protected override void Render(HtmlTextWriter writer) 4 { 5 // 替换writer为我们自定义的类 6 writer = new FilterHtmlTextWriter(writer.InnerWriter, ""); 7 base.Render(writer); 8 } 9 // 10 } 至此大功告成,让我们重新看看页面的输出,哇塞,讨厌的空格果然变少了@_@,如下图所示:

 |
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。
| 原始作者:未知 |
录入时间:2007-5-4 下午 06:32:11 |
| 信息来源:本站原创 |
投稿信箱:itqoo@126.com |
|
|
 |
|
|
|
| 教程录入:itqoo 责任编辑:itqoo |
|
上一个教程: IIS7 会重用那些不该重用 HttpHandler
下一个教程: 在ASP.NET中创建安全的web站点(配置) |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |