none
Asp.Net timer kullanımı RRS feed

  • Soru

  • Merhabalar,

    bir aspx web sayfamda kullanıcılar login olduktan sonra girdikleri bu sayfada bir timerim bir değişkenin değerini 1 sn bir değerini düşürecek şekilde kodladım. sayfada o an bir kişi varsa değişken istediğim gibi 1'er 1'er azalıyor ama sayfadaki kullanıcı sayısı artığında timer'in 1 snlik bir tickin de sayfadaki kişi sayısı kadar azalıyor.

    public static int sayac=15;

    protected void Timer1_Tick(object sender, EventArgs e)
    {
    sayac--;
    }

    yapmak istediğim şey ise ne kadar kullanıcı online olursa olsun bu sayfada sayacın hepsi için ayrı ayrı saymasını istiyorum. sizce bunu nasıl yapabilirim. yardımcı olabilir misiniz. Teşekkürler.


    Hakan Gürcan

    27 Mayıs 2018 Pazar 14:27

Yanıtlar

Tüm Yanıtlar

  • Statik değişkenler uygulama başına 1 tanedir. Dolayısıyla her request de değişiklik yapılmış oluyor. Kullanıcı başına bir şey yapmak istiyorsanız session'ları kullanmalısınız. Fakat timer kullanımı çoğu zaman gereksizdir. İstemci taraflı bir işiniz varsa bunu javascript kullanarak hallederseniz daha doğru olacaktır.

    www.cihanyakar.com

    27 Mayıs 2018 Pazar 17:23
    Moderatör
  • Merhaba arkadaşlar. Konuyu tekrar açıyorum ama aynı durumla bende karşılaştım. Sorunu çözebildiniz mi? Nasıl bir yol izlediniz. Bu konularda tam olarak bilgim olmadığı için yardımlarınızı bekliyorum. Kolay gelsin.

    25 Ekim 2018 Perşembe 11:13
  • Merhaba arkadaşlar. Konuyu tekrar açıyorum ama aynı durumla bende karşılaştım. Sorunu çözebildiniz mi? Nasıl bir yol izlediniz. Bu konularda tam olarak bilgim olmadığı için yardımlarınızı bekliyorum. Kolay gelsin.

    Çözdük, Timer kullanıcı bazında olacaksa bunu javascript ile halletmeniz gerekiyor. Bunu sunucuda halledemezsiniz.

    www.cihanyakar.com

    25 Ekim 2018 Perşembe 12:08
    Moderatör
  • Çok teşekkür ederim cihan bey. 



    26 Ekim 2018 Cuma 06:37
  • Cihan Bey kolay gelsin.

    Size bir başka sorum olacak. Yardımcı olabilirseniz sevinirim.

    Benim tasarladığım site eğitim içerikli bir site olacak. Öğrencilere eğitim içerisinde minumum kalma süresi atadım. Bu süre ekranda sayacak ve süre bitiminde içerikle ilgili sorular ve diğer içerikler ekrana gelecek. Timer kullanarak süre kısmını yapmaya çalıştım, fakat olmayınca dediğiniz gibi javascript kullanarak hallettim. Şuan süre çalışıyor. Şimdi sorunum şu: javascript te biten süre sonunda c# kod bloğunda yer alan komutlar nasıl çalıştırılacak. Ya da işlemi yapabilmem için sizin başka bir öneriniz olur mu? 

    29 Ekim 2018 Pazartesi 11:10
  • Sanırım asp.net webforms kullanıyorsunuz. Eğer öyle ise javascript'den postback ile c# tarafındaki metodun çalıştırılmasını ve dolayısıyla sayfanın yeniden yüklenmesini sağlayabilirsiniz.  __doPostBack(); javascript metodu ve bunun parametrelerini araştırın. Kullanıcıların hile yapacaklarını mutlaka hesaba katın ve süre farkını sunucu tarafta da kontrol etmeyi unutmayın.


    www.cihanyakar.com

    29 Ekim 2018 Pazartesi 14:34
    Moderatör
  • Evet webforms kullanıyorum. Dediğiniz postback metodunu bir araştırayım. Süre farkını sunucuda kontrol edin demişsiniz. Bunu nasıl gerçekleştirebilirim biraz açabilir misiniz? Bu arada yardımlarınız için çok teşekkür ederim.
    29 Ekim 2018 Pazartesi 14:44
  • Kişinin başladığı zamanı biliyorsunuz zaten, bunu sunucuda bir yere not edin. Bitirip geldiğinde kontrol edin. İstemci taraftan gelen hiç bir bilgiye güvenmeyin, biraz analyan kullanıcı heeer şeyi ama her şeyi değiştirip gönderebilir. Sizin pasif yaptığınız seçeneği seçebilir, olmayan bir seçeneği seçebilir, pasif düğmeye tıklayabilir, -32432 saniyede bitirmiş gösterip sistemi yanıltabilir vs.. bunun gerçekten sonu yok. Bu sebeple her şeyi bir daha sunucuda mutlaka kontrol edin.

    www.cihanyakar.com

    29 Ekim 2018 Pazartesi 15:19
    Moderatör
  • Yardımlarınız için teşekkürler cihan bey. Dediğiniz durumlara dikkat edeceğim. Ama öncelik sistemin çalışması. Şimdi onla ilgileniyorum. Tekrar teşekkürler. Size de kolay gelsin. İyi çalışmalar.
    31 Ekim 2018 Çarşamba 11:46