從.Net網站中刪除所有空白的最佳方法是什麼?我發現這個網站Whitespace removal - 4Wall Art Site刪除所有空白?
如果你看看源代碼,它顯然是一個.net網站,但所有不需要的標籤和空格都被刪除。現在我已經搜索了它似乎是一個頁面上的正則表達式渲染是最好的方法,但有沒有人有任何例子?或者對於這是否是最好的方式有任何相互矛盾的看法?該網站上的html源代碼下降到〜30kb,這是我努力的目標!
謝謝你,史蒂夫
從.Net網站中刪除所有空白的最佳方法是什麼?我發現這個網站Whitespace removal - 4Wall Art Site刪除所有空白?
如果你看看源代碼,它顯然是一個.net網站,但所有不需要的標籤和空格都被刪除。現在我已經搜索了它似乎是一個頁面上的正則表達式渲染是最好的方法,但有沒有人有任何例子?或者對於這是否是最好的方式有任何相互矛盾的看法?該網站上的html源代碼下降到〜30kb,這是我努力的目標!
謝謝你,史蒂夫
如果你還沒有,你會做得更好打開的gzip /緊縮compression in IIS。如果您嘗試減少網絡流量並提高性能,則壓縮會產生較大影響,然後刪除空白區域。
您幾乎不應該嘗試在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標記。
好吧,如果你真的想你可以使用bash 'sed的' 和Perl的正則表達式的將實現同樣的事情:
擊:
cat yourhtmlfile.html | sed 's_\ +_\ _g' > newReducedFile.html
這應該實現你想要的。它將一個或多個空間放入一個空間。這應該刪除文件中的大部分不必要的空白。對於.net網站,您可以使用perl或python。有Windows版本。
如果你真的覺得有必要刪除空白空間,那麼開始的地方應該是http://www.codeproject.com/KB/aspnet/WhitespaceFilter.aspx,我強調這應該只是一個開始的地方,不應該像文章作者那樣複製代碼不能很好地理解他們以非常低效的方式使用很多正則表達式。
它如何顯示使用過濾器來修改所有頁面的輸出的技術。
+1這是更好的解決方案。我不相信正則表達式在這裏是正確的工具。 – 2009-04-20 12:35:41