مطلبي را ديروز در وبلاگ آقاي صحرايي ديدم در مورد بهبود كارآيي برنامهها و سايتهاي 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 سريعتري داشته باشيم؟" مراجعه كرد.