使用WebGrease裡面的Microsoft.Ajax.Utilities.Minifier來動態壓縮JS、CSS
在前一篇文章「在WSP WebForm下,使用System.Web.Optimization來進行JS、CSS壓縮與打包」,我們提到利用System.Web.Optimization來進行全網站的靜態Javascript、CSS的壓縮,但是這無法解決可能我們偶然在系統開發階段,臨時載入的JS、CSS的壓縮,或者是離散在子系統之間的這些資源檔案,這些都是無法被System.Web.Optimization這種全網站式的架構所支援。
接下來換WebGrease登場了
在我們nuget System.Web.Optimization後,裡面的WebGrease.dll其實有隱含一個重要的類別,叫做Microsoft.Ajax.Utilities.Minifier。這個方法可以被我們利用來進行在執行階段時期,用很簡單的指令就可以進行到Javascript、CSS的壓縮。確定有參考到WebGrease.dll後,請輸入下列的程式碼即可:
var oMin = new Microsoft.Ajax.Utilities.Minifier();
//壓縮Javascript
string cJS = oMin.MinifyJavaScript(@"
/* 這是一串無意義的註解 */
""use strict"";
myFunction();
function myFunction() {
y = 3.14; //這是一串無意義的註解
}
");
//壓縮Css
string cCss = oMin.MinifyStyleSheet(@"
/* 這是一串無意義的註解 */
div {
width: 200px; //這是一串無意義的註解
height: 50px;
background-color: #eee;
overflow: visible;
}
");
壓縮後的cJS + cCss輸出:(僅示範用,勿在意HTML語法)
"use strict";function myFunction(){y=3.14}myFunction()div{width:200px;height:50px;background-color:#eee;overflow:visible}
相關連結
在WSP WebForm下,使用System.Web.Optimization來進行JS、CSS壓縮與打包