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