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

发布时间:2017-04-18 06:06 来源:互联网 以后栏目:网页设计教程

   刚才“不当心”检查了一下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 }

  至此大年夜功告成,让我们重新看看页面的输入,哇塞,憎恨的空格果真变少了@_@,以下图所示:

  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、