Asp.net Html Çıktısında Boşlukları Silme
13 Kasım 2016 / 20:49
Burak
Merhaba arkadaşlar .net ile site oluşturduktan sonra sitemiz render işlemi sonrasında html kaynak kodları arasında boşluklar olduğunu görürüz bu boşluklar hem sayfaların yavaş açılmasını hemde seo (google page speed ) açısında eksi puan oluşturmaktadır.Aşağıdaki kodlar yardımıyla sizlerde artık boşluklarda kurtulabilirsiniz 🙂
1.adım kütüphanemizi yükleyelim
1 |
using System.Text.RegularExpressions; |
2.Adım hangi sayfada html temizlenicekse yada masterpage kullanıyorsanız aşağıdaki kodlar yapıştırıverin gitsin 🙂
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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()); } } |
Eğerki hem hem viewstateleri footer indirme hemde boşlukları silmek isterseniz aşağıdaki kodları kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
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); // html = html.Trim().Replace("<form", "<div"); html = html.Trim(); int StartPoint = html.IndexOf("<input type=\"hidden\" name=\"__VIEWSTATE\""); if (StartPoint >= 0) { int EndPoint = html.IndexOf("/>", StartPoint) + 2; string viewstateInput = html.Substring(StartPoint, EndPoint - StartPoint); html = html.Remove(StartPoint, EndPoint - StartPoint); int FormEndStart = html.IndexOf("</form>"); if (FormEndStart > 0) { html = html.Insert(FormEndStart, viewstateInput); } } writer.Write(html); } } |
Bu Yazılarıda Okuyabilirsiniz...
Bir cevap yazın