ASP# - Online Ziyaretçi Sayısı

Ilk olarak ApplicationState kullanımını ele alalım.

ApplicationState Oluşturma

Application["Appisim"] = "Değer";
ApplicationState Değeri Alma

string appdegeri = (string)Application["Appisim"];

ApplicationState Silme

Oluşturmuş olduğumuz ApplicationState'ler Sunucu taraflı saklandığı için Sunucumuz üzerinde yük oluşturacaktır. Bu yüzden kullanmaya ihtiyacımız olmadığı durumlarda ApplicationState'leri Silmemiz gerekir.

Application.Remove("Appisim");

ApplicationState Tamamını Silme

Application.RemoveAll();

Online Ziyaretçi

Application State'lerin kullanımı hakkında en iyi örneklerden biri Online Ziyaretçi Sayısı Hesaplama uygulamasıdır. Bu uygulama ile Application State'lerin kullanılış mantığını anlamış olacağız.

Sitemize giren her kullanıcı Global.asax içindeki SessionStart'ı çalıştırmış olur ve sitemizden çıkan her kişide Session_End'i çalıştırmış olur. Biz Session_Start'a gelen her kullanıcı için Online Ziyaretçi sayımızı 1 artıracağız. Session_End'e gelen her kullanıcı için ise Online Ziyaretçi sayımızı 1 azaltacağız. Böylece Online Ziyaretçi sayımızı güncel olarak tutmuş olacağız. Kodlar aşağıda verilmiştir. Bu kodları Global.asax içine yazıyoruz.

void Application_Start(object sender, EventArgs e)
 {
    Application["OnlineZiyaretci"] = 0; //Burada OnlineZiyaretçi tanımı yapılmıştır.
 }

void Application_End(object sender, EventArgs e)
 {
    Application.Remove("OnlineZiyaretci"); //Burada uygulama sonlandırılmıştır ve OnlineZiyaretci State'imizi siliyoruz.
 }

void Session_Start(object sender, EventArgs e)
 {
    Application.Lock();
    Application["OnlineZiyaretci"] = (int)Application["OnlineZiyaretci"] + 1; //Burada sitemize yeni bir kullanıcı girdiğini anlıyoruz ve OnlineZiyaretçi sayımızı 1 artırıyoruz.
    Application.UnLock();
 }

void Session_End(object sender, EventArgs e)
 {
    Application.Lock();
    Application["OnlineZiyaretci"] = (int)Application["OnlineZiyaretci"] - 1;  //Burada sitemizden bir kullanıcının ayrılmış olduğunu anlıyoruz ve OnlineZiyaretçi sayımızı 1 azaltıyoruz.
    Application.UnLock();

  }

  • Sayıyı bir label da gosterelım.

 int onlineZiyaraetciSayisi = (int)Application["OnlineZiyaretci"];
 lbl_online.Text = "Online Ziyaretci Sayisi : " + onlineZiyaraetciSayisi.ToString();

Hiç yorum yok:

Yorum Gönder