Web 2.0 時代,AJAX 大量使用導致頁面引用多個 JS 檔、體積龐大。首次載入時未快取,直接影響使用者體驗。壓縮可移除空白、註解、縮短變數名稱,大幅減小檔案。
| 等級 | 指令 | 動作 |
|---|---|---|
| Level 1 | -normal (預設) | 移除空白、換行、註解 |
| Level 2 | -normal | 移除多餘分號、大括號 (Normal Crunching) |
| Level 3 | -hyper | 重命名區域變數為短名稱 a,b,c... (Hyper Crunching) |
| Level 4 | -unused | 移除不可達代碼 (需確認確實不會執行) |
建議: 直接使用 -hyper (Level 3) 獲得最佳平衡。
下載 Microsoft Ajax Library Preview 6 並安裝,隨附 AjaxMin.exe。
# Level 2 (Normal Crunching)
AjaxMin input.js -o output.min.js
# Level 3 (Hyper Crunching) + 分析輸出
AjaxMin -hyper -echo input.js -o output.min.js
| 檔案 | 原始大小 | -normal | -hyper |
|---|---|---|---|
| hash.js (示範用) | 5 KB | 2 KB (1699 字元) | 2 KB (1531 字元,變數重命名) |
| jquery-1.3.1.js | 115 KB | 69 KB | 53 KB |
$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\AjaxMin.tasks 可用。.csproj 的 </Project> 前加入:<Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\AjaxMin.tasks" />
<Target Name="AfterBuild">
<ItemGroup>
<JS Include="**\*.js" Exclude="**\*.min.js;Scripts\*.js" />
</ItemGroup>
<AjaxMin SourceFiles="@(JS)" SourceExtensionPattern="\.js$" TargetExtension=".min.js" />
</Target>
*.min.js,不自動加入專案(設計時用原檔,執行時用 min 版)。Ajax Minifier 簡單易用、整合 MSBuild 零侵入,配合 IIS 壓縮與 Doloto,能全方位優化前端效能。強烈建議納入專案建置流程。