Bu yazımda web sayfalarımızın ne kadar sürede oluştuduğunu HttpModule kullanarak hesaplayacağız ve bu bilgiyi her sayfada göstereceğiz.
- Yazılım Uzmanları
- 14 Mayıs 2018
- 1431 kez görüntülendi.
Bu yazımda web sayfalarımızın ne kadar sürede oluştuduğunu HttpModule kullanarak hesaplayacağız ve bu bilgiyi her sayfada göstereceğiz. Bu uygulamayı bloğumda da kullandım ve sayfaların oluşma sürelerini en altta sol tarafta saniye türünden görebilirsiniz. Birçok web sayfasında kullanılan, istatistiksel bilgi sağlayan, sayfaların çalışma hızını, performansını gösteren bir özellik. Bu uygulamayı HttpModule olarak hazırlayıp istediğimiz projeye ekleyip kullanabiliriz. Ayrıca basit bir işlem ile bu module'ü aktif veya pasif ederek çalışmasını kontrol edebiliriz. Şimdi yazacağımız kodlara göz atalım.
Öncelikle zaman ölçmede kullanacağımız Stopwatch sınıfı için kodları yazacağımız bölüme System.Diagnostics kütüphanesini eklemeliyiz. Ardından da aşağıdaki gibi bir kodlama ile sadece sayfaların oluşma sürelerini hesaplayan ve hesapladığı değeri sayfalara yazdıran bir HttpModule oluşturalım.
namespace MehmetDuran { public class Zaman : IHttpModule { public void Dispose() { } public void Init(HttpApplication context) { context.BeginRequest += delegate(object sender, EventArgs e) { HttpContext Context = ((HttpApplication)sender).Context; Stopwatch zaman = new Stopwatch(); Context.Items["zaman"] = zaman; zaman.Start(); }; context.EndRequest += delegate(object sender, EventArgs e) { HttpContext Context = ((HttpApplication)sender).Context; Stopwatch zaman = (Stopwatch)Context.Items["zaman"]; zaman.Stop(); if (Context.Response.ContentType == "text/html") { double SaniyeSure = (double)zaman.ElapsedTicks / Stopwatch.Frequency; Context.Response.Write("Oluşturulma Süresi : " + SaniyeSure.ToString("F4") + " saniye."); } }; } } }
Bu şekilde HttpModule'ü tanımladıktan sonra bu module'ün çalışması yani aktif olması için web.config dosyamızda tanımlanması gerekir. Bunun için de web.config dosyamızda gerekli yere aşağıdaki gibi ekleme yapıyoruz.
<httpModules> ..... <add name="ZamanModule" type="MehmetDuran.Zaman"/> </httpModules>
Ayrıca module'leri devre dışı bırakmak istersek bu şekilde bir kullanım yapmalıyız. Böylece yönetilebilir, detaylı bir sistem hazırlamış oluruz.
Bu kodların çalışır halini bloğumda (her sayfanın sol alt kısmında) görebilirsiniz.
İyi Çalışmalar.
Bu yazıya 0 yorum yapılmış.