Code được viết trong Code Behind trong Master Page hoặc Web Form Page
Giải pháp đơn giản:
protected override void Render(HtmlTextWriter writer) { if (this.Request.Headers["X-MicrosoftAjax"] != "Delta=true") { System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@""); System.Text.StringBuilder sb = new System.Text.StringBuilder(); System.IO.StringWriter sw = new System.IO.StringWriter(sb); HtmlTextWriter hw = new HtmlTextWriter(sw); base.Render(hw); string html = sb.ToString(); System.Text.RegularExpressions.MatchCollection mymatch = reg.Matches(html); html = reg.Replace(html, string.Empty); reg = new System.Text.RegularExpressions.Regex(@"(?<=[^])\t{2,}|(?<=[>])\s{2,}(?=[<])|(?<=[>])\s{2,11}(?=[<])|(?=[\n])\s{2,}|(?=[\r])\s{2,}"); html = reg.Replace(html, string.Empty); reg = new System.Text.RegularExpressions.Regex(@""); string str = string.Empty; foreach (System.Text.RegularExpressions.Match match in mymatch) { str += match.ToString(); } html = reg.Replace(html, str + ""); writer.Write(html); } else { base.Render(writer); } }
Giải pháp chi tiết:
Nén HTML:
- Loại bỏ các khoảng trắng không cần thiết, đặc biệt là ở giữa các thẻ HTML.
- Loại bỏ các comment không cần thiết.
- Nếu có thể, thay thế các thuộc tính có giá trị boolean bằng cách loại bỏ giá trị (ví dụ:
disabled="disabled"
có thể được rút gọn thành chỉdisabled
).
protected override void Render(HtmlTextWriter writer) { if (this.Request.Headers["X-MicrosoftAjax"] != "Delta=true") { System.IO.StringWriter sw = new System.IO.StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw); base.Render(hw); string html = sw.ToString(); // Nén HTML html = CompressHtml(html); writer.Write(html); } else { base.Render(writer); } } private string CompressHtml(string html) { // Loại bỏ khoảng trắng không cần thiết html = System.Text.RegularExpressions.Regex.Replace(html, @">\s+<", "><"); // Loại bỏ comment html = System.Text.RegularExpressions.Regex.Replace(html, "", string.Empty); // Thay thế các thuộc tính boolean html = System.Text.RegularExpressions.Regex.Replace(html, @"(\w+)=""\1""", "$1"); return html; }
Nén JavaScript:
- Loại bỏ các khoảng trắng không cần thiết và xuống dòng.
- Loại bỏ các comment trong mã JavaScript.
private string CompressJavaScript(string js) { // Loại bỏ khoảng trắng và xuống dòng không cần thiết js = System.Text.RegularExpressions.Regex.Replace(js, @"\s+", " "); // Loại bỏ comment trong mã JavaScript js = System.Text.RegularExpressions.Regex.Replace(js, @"/\*.*?\*/", string.Empty); return js; }
Trong một số trường hợp, việc này có thể không nén mã JavaScript hiệu quả như việc sử dụng các thư viện chuyên nghiệp. Nếu mã của bạn phức tạp, có nhiều tính năng, và được tổ chức một cách phức tạp, việc sử dụng một thư viện nén sẽ giúp bạn tiết kiệm thời gian và giảm khả năng gặp lỗi.
Theo dõi
0 Góp ý
Mới nhất