欢迎来到山村网

过滤ASP.NET输出HTML中的无用空格

2019-03-28 23:14:40浏览:207 来源:山村网   
核心摘要:  刚才不小心检查了一下ASP.NET生成的代码,惊讶地发现ASP.NET输出的代码居然如此地不紧凑,在标签之间有无数的空格和制表符(T

  刚才“不小心”检查了一下ASP.NET生成的代码,惊讶地发现ASP.NET输出的代码居然如此地不紧凑,在标签之间有无数的空格和制表符(TAB),特别是用了嵌套表格之后,那景象真是惨不忍睹啊,有图为证:

过滤ASP.NET输出HTML中的无用空格 山村

  照理说在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 }

  至此大功告成,让我们重新看看页面的输出,哇塞,讨厌的空格果然变少了@_@,如下图所示:

(责任编辑:豆豆)
下一篇:

用Java实现HTML文件代替数据库存储数据

上一篇:

用SQL*PLUS构建完美excel或html输出

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com