Anasayfa     Güncel Sürüm   BlogEngineTR Ağı   Bize Destek Olun   Forum   Wiki   Eklentiler   Temalar   BasIn Bülteni   ArÅŸiv   İletiÅŸim

Yeni Bir Sayfa Yüklenme Süresi Eklentisi

29. Temmuz 2008 16:29 tarihinde Ali Rıza Babaoğlan tarafından Eklentiler kategorisinde yazılmıştır.

Sevgili Emrah Çetiner, kendi hazırladığı bi eklentiyi, bize ulaÅŸarak web sitemiz aracılığıyla siz BlogEngine.NET TR kullanıcılarının hizmetine sunmak istediÄŸini belirtmiÅŸ. Kendisine bu güzel çalışması ve bize e-posta ile ulaÅŸarak bu çalışmayı diÄŸer kullanıcılarla ayrıntılı bir rapor üzerinden paylaÅŸma çabası için teÅŸekkür ediyoruz. Emrah Çetiner'in kiÅŸisel web sitesine bu baÄŸlantı üzerinden eriÅŸebilirsiniz.

Sayfa Yüklenme Süresi Eklentisi

Bu eklenti sayesinde sayfalarınızın ne kadar süre içerisinde yüklendiÄŸini görebilirsiniz. Eklenti, yükleme süresi olarak sayfanın OnInit Event’ı ile Render Event’ı arasında kalan süreyi hesaplamaktadır. Bu da ÅŸu demek oluyor: Ziyaretçi sayfayı çağırdıktan sonra sayfanın hazırlanmaya baÅŸlaması ile tüm kontrollerin render edilip çıktısı hazırlanması arasında kalan süre.

Eklentinin Kurulumu

1. Kullandığınız temanın içersinde bulunan site.master.cs isimli master dosyamızı açıyoruz. Varsayılan tema için bu dizin: <root>\themes\Standart\site.master.cs

2. site isimli class içersine öncelikli olarak aÅŸağıdaki satırı ekliyoruz.

private System.Diagnostics.Stopwatch pageGenerationWatch = new System.Diagnostics.Stopwatch();

3. Sonrasında hemen altına aÅŸağıdaki event’ı ekliyoruz.

protected override void OnInit(EventArgs e)

      {

            pageGenerationWatch.Start();

            base.OnInit(e);

      }

4. AÅŸağıdaki event’ı da az önce eklediÄŸimiz event’ın altına ekliyoruz.

protected override void Render(HtmlTextWriter writer)

      {

            StringBuilder sb = new StringBuilder();

      HtmlTextWriter htw = new HtmlTextWriter(new StringWriter(sb));

 

      base.Render(htw);

 

      pageGenerationWatch.Stop();

 

      double duration = (double)pageGenerationWatch.ElapsedMilliseconds / 1000.0;

      string html = sb.ToString().Replace("[PageGenerationTime]", String.Format("Derlenme Süresi: <b>{0} sn.</b>", duration));

 

      writer.Write(html);

      }

5. Son olarak; kullandığınız tema içersinde bulunan site.master dosyasını açıyoruz.  Varsayılan tema için bu dizin: <root>\themes\Standart\site.master

Bu dosya içersinde, sayfamızın yüklenme süresinin nerede gözükmesini istiyorsak oraya “[PageGenerationTime]” yazıyoruz.

Eklentinin Çalışma Mantığı

Sayfalarımızın yüklenme süresini hesaplamak için System.Diagnostics namespace’i içersinde bulunan StopWatch nesnesini kullandık. Bu sayacı master sayfamız içersinde OnInit Event’ında çalıştırdık ve sayfamızını Render Event’ında durduk. Böylelikle sayacımız, sayfa içersindeki tüm kontrollerin render edilmesi de dahil olmak üzere son ana kadar çalıştı.

Render Event’ı içersinde ise, sayfamızda bulunan [PageGenerationTime]” belirteci yerine StopWatch nesnemiz ile hesaplamış olduÄŸumuz sayfa yüklenme süresini replace ettik.

Bir tek BlogEngine projelerinde deÄŸil, tüm asp.net projelerinizde kullanabileceÄŸiniz bir yöntem.

Umarım işinize yarar.

Emrah Çetiner
www.emrahcetiner.com.tr

Bu yazıyı diğer sitelerde paylaş

Etiketler: , ,

Yorum ekle