首页
|
编程语言
|
网站建设
|
游戏天堂
|
冲浪宝典
|
网络安全
|
操作系统
|
软件时空
|
硬件指南
|
病毒相关
|
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中的无用空格
刚才“不小心”检查了一下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
b
b
b
软讯网络 All Rigths Reserved.