壓縮ASPX,替換ASPX多餘的空格

2022-01-30 09:27:40 字數 2477 閱讀 5048

這種方法的優勢在於發布之前壓縮aspx,無須浪費web server的cpu

兩種方法實現:

1)一行一行的讀取aspx檔案然後處理

2)一次性讀取aspx檔案然後處理 

處理邏輯:

替換"  "為" "(將兩個空格替換為乙個空格),將所有的換行符替換為空字元(極限壓縮)

注意事項:

1)一行一行處理在極限壓縮的情況下需要額外的處理服務端控制項換行的情況,比如

line 1:line 2: id="lb1"   ....

line 3:.../> 

這種情況 一行一行處理會出問題

2) 另外js指令碼中內聯的單行注釋

推薦使用"/**/"代替"//"

使用結果:

一行行的處理比一次性處理稍快,對於兩三百行的aspx檔案,差距在毫秒級別。不過對整個專案進行處理,隨著檔案數增多,差距應該會體現出來。

一次性讀取處理可以不使用極限壓縮,這樣伺服器控制項和內聯單行注釋的問題可以不用考慮。

我一般很少使用內聯注釋和單行注釋以及伺服器控制項所以壓縮效果非常明顯,一般500-600行的原始碼壓縮後不到50行,大小減少約三分之一。

不過這種壓縮效果可能和你是否使用服務端資料列表控制項以及如何使用有很大的關係 ,我一般只使用repeater。

public

static

string replace(string source,string oldstr,string newstr)

return

source;

}///

///壓縮指定路徑的檔案空白字串和換行符

///壓縮說明

///1)採取file.readalllines讀取所有行每一行做處理工作

///2)伺服器控制項最好寫在一行內,只做了尾部標籤與runat="server"跨行的處理,開始標籤跨行為處理

///3)檔案不能有單行注釋"//"

///4)替換掉了換行符和空格

//////

檔案路徑

public

static

void

compresslinebyline(string filepath)

", filepath);

return;}

var start 

=datetime.now;

console.writeline(

"正在壓縮檔案:\r\n開始於...",

filepath,start.tostring());

var lines 

=file.readalllines(filepath,

encoding.getencoding(

"gb2312

"));

for(

inti =0

; i 

<

lines.length; i++)

file.writealltext(filepath, 

string

.join(

"", lines),

encoding.getencoding(

"gb2312

"));

var end 

=datetime.now;

console.writeline(

"結束於...

", end.tostring());

console.writeline(

"====耗時====\r\n\r\n

", end 

-start);

}///

///壓縮指定路徑的檔案空白字串和換行符

///壓縮說明

///1)一次性讀取出所有的文字替換掉換行符和空白

///2)無須處理伺服器控制項換行的問題

///3)壓縮不徹底,a元素的結束標籤和b開始標籤之間可能仍然有乙個空格

//////

public

static

void

compressatonetime(string filepath)

\r\n開始於...

", filepath,

start.tostring());

var lines 

=file.readalltext(filepath);

file.writealltext(filepath, replace(replace(lines, 

"\r\n",

""),""

,""), encoding.getencoding(

"gb2312

"));

var end 

=datetime.now;

console.writeline(

"結束於...

", end.tostring());

console.writeline(

"====耗時====\r\n\r\n

", end 

-start);

aspx頁面返回的response

1.在使用aspx返回讀取乙個檔案的內容的時候,注意 一定要設定頭資訊,否則會導致讀取的檔案不能夠在頁面上顯示 response.contenttype text html 2.當讀取的檔案頭部中有這種標準的時候,需要設定返回的型別為xml才能夠正常返回 response.contenttype t...

asp和aspx的區別

asp是古老的vb 體系.物件導向的概念可謂是沒有.aspx 整合了.net 框架,不但能做網頁,應用程式也可以,可以說整個框架體系,和概念都不一樣,不管是物件導向,還是命名空間,等等的,可以說根本非同一種語言.如果想要asp 轉化為aspx 幾行還可以.要是和html混寫的,include 來in...

關於 aspx與 aspx cs的關係

開始的時候沒在意,現在發現還是知道點的好.google之 發現解釋的比較清楚的一段話 aspx和對應的.aspx.cs是乙個頁面乙個 頁面基本上只負責顯示格式之類的,而所有的伺服器端動作都是在aspx.cs中定義的。也就是說他們其實是乙個東西的兩面,aspx中所有伺服器端控制項都可以在對應的aspx...