Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > VB.NET > 过滤ASP.NET输出HTML中的无用空格
【标  题】:过滤ASP.NET输出HTML中的无用空格
【关键字】:ASP.NET,HTML
【来  源】:http://www.cnblogs.com/leafyoung/archive/2007/02/05/640882.html

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

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

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


几个经典的面向流程的组织模型[理论文]:【上一篇】
Windows mobile 下读取手机SIM卡信息:【下一篇】
【相关文章】
  • UpdatePanel与ASP.NET Page的缓存
  • Microsoft AJAX Library Cheat Sheet——ASP.NET AJAX客户端框架的快速参考系列
  • ASP.NET: 为自定义控件设置主题(Theme)样式
  • ASP.net 2.0 的 Membership Provider 与 Role Provider 第一部分
  • ASP.net 2.0 的 Membership Provider 与 Role Provider 第二部分
  • Asp.net下的对象成员数据绑定器实现
  • 推荐一个好工具:Refactor! for ASP.NET 2.0
  • 本周ASP.NET英文技术文章推荐[01/28 - 02/03]
  • 使用FreeMarker生成Html静态文件(实例)
  • 喜讯,Asp.net Ajax 文档提供下载
  • 【随机文章】
  • Eclipse开发J2ME程序之安装配置
  • 那也只好由你
  • javascript BrowseForFolder Shell.Application 没有权限
  • 让root也可以rlogin到linux
  • Microsoft Windows DNS RPC Buffer Overflow
  • javabean模块化文字模式访问技术器(修正版)
  • 数据库设计中的14个技巧[ZT]
  • windows server 2003操作系统安全配置
  • 联众,让人失望
  • 艰辛的驱动之无线网卡
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.