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(@"
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 ý