2009-04-20 189 views
0

从.Net网站中删除所有空白的最佳方法是什么?我发现这个网站Whitespace removal - 4Wall Art Site删除所有空白?

如果你看看源代码,它显然是一个.net网站,但所有不需要的标签和空格都被删除。现在我已经搜索了它似乎是一个页面上的正则表达式渲染是最好的方法,但有没有人有任何例子?或者对于这是否是最好的方式有任何相互矛盾的看法?该网站上的html源代码下降到〜30kb,这是我努力的目标!

谢谢你,史蒂夫

回答

5

如果你还没有,你会做得更好打开的gzip /紧缩compression in IIS。如果您尝试减少网络流量并提高性能,则压缩会产生较大影响,然后删除空白区域。

+1

+1这是更好的解决方案。我不相信正则表达式在这里是正确的工具。 – 2009-04-20 12:35:41

1

您几乎不应该尝试在HTML上使用正则表达式(请参阅Can you provide some examples of why it is hard to parse XML and HTML with a regex?)。这对于解析器来说确实是一项工作(有关C#的HTML解析器,请参阅What is the best way to parse html in C#?)。您想要做什么的伪代码是

print tag and attributes with minimal spaces 
if tag is in list of tags whose contents can be to modified 
    strip redundant whitspace from contents 
print contents 
print end tag 

不应修改其内容的标记的一个示例是pre标记。

0

好吧,如果你真的想你可以使用bash 'sed的' 和Perl的正则表达式的将实现同样的事情:

击:

cat yourhtmlfile.html | sed 's_\ +_\ _g' > newReducedFile.html 

这应该实现你想要的。它将一个或多个空间放入一个空间。这应该删除文件中的大部分不必要的空白。对于.net网站,您可以使用perl或python。有Windows版本。

0

如果你真的觉得有必要删除空白空间,那么开始的地方应该是http://www.codeproject.com/KB/aspnet/WhitespaceFilter.aspx,我强调这应该只是一个开始的地方,不应该像文章作者那样复制代码不能很好地理解他们以非常低效的方式使用很多正则表达式。

它如何显示使用过滤器来修改所有页面的输出的技术。