Bu eklenti sayesinde sayfalarınızın ne kadar süre içersinde 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. Ve 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.