عنوان:

‫کاهش پهنای باند مصرفی یک سایت ASP.Net


نویسنده: وحید نصیری
تاریخ: ۱۳۸۸/۰۲/۲۱ ۲۰:۱۷:۰۰
آدرس: www.dntips.ir

مطلبی را دیروز در وبلاگ آقای صحرایی دیدم در مورد بهبود کارآیی برنامه‌ها و سایت‌های ASP.Net ، که یکی از موارد آن "فاصله بین تگ ها را تا حد ممکن از بین ببرید" بود.
برای پیاده سازی آن به صورت زیر می‌توان عمل کرد:
using System.Text.RegularExpressions;

//حذف فاصله‌های خالی
private static readonly Regex REGEX_BETWEEN_TAGS = new Regex(@">\s+<", RegexOptions.Compiled);
private static readonly Regex REGEX_LINE_BREAKS = new Regex(@"\n\s+", RegexOptions.Compiled);

protected override void Render(HtmlTextWriter writer)
{

using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
{
base.Render(htmlwriter);
string html = htmlwriter.InnerWriter.ToString();

html = REGEX_BETWEEN_TAGS.Replace(html, "> <");
html = REGEX_LINE_BREAKS.Replace(html, string.Empty);

writer.Write(html.Trim());
}
}
این قطعه کد را در مسترپیج سایت خود قرار دهید تا به صورت یکسان به کل سایت اعمال شود.

یا روش دیگر اعمال آن سفارشی ساختن ASP.NET pipeline با کمک Response.Filter آن است. برای مشاهده پیاده سازی آن لطفا به مقاله زیر مراجعه بفرمائید:

برای بهینه سازی قسمت اعمال regular expressions آن می‌توان به مقاله "چگونه Regex سریعتری داشته باشیم؟" مراجعه کرد.