Kullanıcıya Ait Cevap
20/05/2005 - 08:11:07 cevap (4) Okunma : 8622 Bu yazıyı 0 kişi tuttu.
Reload ve Refresh ile online kullanıcı sayısı hesaplama
merhaba, çerçevelerden birindeki bir sayfaya aktif ziyaretçi sayısını gösteren bir kod bloğu ekledim. ancak bu kodlar ziyaretçiye, girdiği andan sonraki girişleri göstermiyor. Kod bloğunu başka bir sayfa olarak kaydettim ve ilgili sayfaya 15 saniyede bir tazeleme için şu kodu ekledim:
<InvalidTag http-equiv='refresh' content='15'>
istediğim şey oldu fakat istemediğim bir şey daha oldu. ilgili sayfadaki reload işlemi kendisini çağıran sayfayı da yeniden yükledi. dolayısıyla aynı çerçevede bulunan sayaç da bu durumdsn etkilendi. yani, ziyaretçi sayısı da her tazelemede artmaya başladı.
kısaca sayfadaki başka değişkenleri etkilemeden aktif ziyaretçi sayısını belli aralıklarla (örneğin 30 saniyede bir) göstermenin bir yolunu öğrenmek istiyorum.
bir de yukarıdaki kodala yapılan tazeleme işlemininin yerine belli aralıklarla bir değişkenin değerini kontrol imkanı var mı acaba?
ilginiz için şimdiden teşekkürler
Etkinlikler
Yarışma
Fikir10000 Dijital Pazarlama Fikir Yarışması
Fikir10000 Dijital Pazarlama Fikir Yarışması
ADTECH tarafından düzenlenen Fikir10000 yarışmasına; dijital pazarlama ile ilgili size ait olan fikrinizle katılabilir ve 10.000 YTL’lik birinci...
Kategori:
Yarışma
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 578 (2 kayıtlı, 576 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız









Kullandığınız yöntem gayet mantıklı. Başka yöntemlerde var, fakat onlara geçmeden tuhaf olan asıl noktaya değinmekte yarar var.
Bir çerçevenin 15 saniye de bir yenilenmesi normalde ziyaretçi sayısını artırmaz. Sizde artış olması iki nedenden kaynaklanıyor olabilir:
1. Ziyaretçi sayısını yanlış saydırıyor olabilirsiniz. 2. Session timeout’larıyla ilgili bir problem olabilir 3. Cookie’lerle ilgili bir problem olabilir.
Bu hususları kontrol etmenizde fayda var.
Ziyaretçi sayısını saydırmak için öncelikle Coldfusion 7’deki Application.cfc özelliğinden yararlanmanızı tavsiye ederim. Application.cfc içerisinde kullanabileceğiniz onSessionStart ve onSessionEnd metotları her ziyaretçi/oturum açıldığında ve kapandığında otomatik olarak çalışırlar. Bu özellikten yararlanarak "application" skobundaki ziyaretciSayisi adındaki bir değişkeni artırıp azaltarak aktif ziyaretçi sayısını öğrenebilirsiniz. Şimdiye kadarki toplam ziyaretçi sayısını öğrenmek için ise "application" skobun’daki bir değişkeni her oturum açıldığında arttırsınız, oturum kapandığında ise azaltMAzsınız.
Sanırım siz toplam ziyaretçi sayacı yapmak istiyorsunuz. Bunun için Application.cfc’ye de gerek yok. Application.cfm ile de rahatlıkla yapılır:
Kodu test etmediğim için hatalar olabilir, genel fikir vermesi için yazdım. Bu kodu kullanırsanız sayım doğru yapılacaktır. Ancak önce sessionManagement’ı aktif etmelisiniz (bilmeyenler için: <cfapplication> etiketini inceleyin.)
Sayacımızı hallettik. Sonrasında sizin yaptığınız gibi bir frame içerisinde değeri görüntüleyebiliriz. Bunu yapmak için sayac.cfm diye bir .cfm şablonu oluşturup içerisinde:
kodunu yazmamız yeterli. Sonra da sayfa içerisinde sizin kullandığınız meta etiketini kullanıyoruz, böylece sayfanın son sayaç durumunu görüntülemesini sağlıyoruz.
Bu kadar uzun bir yazıyı konunun bir çok kişi tarafından ilgi duyulan bir konu olması sebebiyle yazdım.
Gelelim sayfa yenileme problemine. Eğer her 15 saniyede bir yeni değerin sayfada ya da frame’de görüntülenmesini istiyorsanız meta etiketi yerine AJAX adı verilen JavaScript yöntemini incelemenizde yarar var. (Bilgi için AJAX JavaScript kelimelerini google’da aratın.) Ayrıca JavaScript’te yazdığınız fonksiyonun periyodik olarak otomatikman çalıştırılmasını sağlayabiliyorsunuz. Böylece frame’i yenileyen bir fonksiyon yazıp, bunu zamanlayarak hiç AJAX olayına girmeden sorunu çözebilirsiniz. (Bilgi için SetTimeOut JavaScript kelimelerini google’da aratabilirsiniz)
iyi çalışmalar,