X Dakika İşlem Yapmadınız Uyarısı

ccm

Hectopat
Katılım
27 Aralık 2016
Mesajlar
34
Daha fazla  
Cinsiyet
Erkek
Bir sitede işlem yapıyorum. Açılan sayfada işlem örneğin 4 dakika yapılmaz ise bir uyarı çıkmasını istiyorum. çıkart uyarıda devam et veya kapat seçeneklerinin olmasını istiyorum. Bunu nasıl yaparım. Google'da aradım fakat hep normal zaman kontrolü olmayan alert gönderileri var.
 
Javascript ile yapabilirsin, bunun için Window setInterval() Method methodu kullanabilirsin belirli bir periyotta uyarı verirsin. Yada 1 kere bu durumun oluşmasını istiyorsan Window setTimeout() Method kullanabilirsin. Hazır bir kod vermek istemiyorum methodları incele basit ve gayet açıklayıcı bir şekilde anlatılmışlar.

Eğer kullanıcı bir click işlemi yapmadığında çıkmasını istiyorsan global bir click event handle edip callback işleminde timer ı sıfırlayabilirsin.

JavaScript Events

Events | jQuery API Documentation
 
Son düzenleme:
Açıklaması bol bir örnek hazırladım, işin mantığını rahat bir şekilde kapabilirsin.

Kod:
<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Afk Kontrol Testi</title>
    <script
            src="https://code.jquery.com/jquery-3.1.1.min.js"
            integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
            crossorigin="anonymous"></script>
</head>
<body>
<h1>AFK KONTROL TESTİ</h1>
<script>
  $(function () {
    var maxTimeout = 4 * 60;   // Azami AFK kalma süresi (4dk)
    var afkTimeout = 0;   // Sayacımız
    var afk = false; // Statüs AFK mi?

    // Mouse Klavye hareketinde sayacı ve statüsü sıfırla
    $(window).on('mousemove click keydown', function () {
      afkTimeout = 0;
      afk = false;
    });

    // Her 1 saniyede sayacı artır ve azami sayaçla karşılaştır
    setInterval(function () {
      afkTimeout++;

      // Eğer verilen süre aşıldı ve ilk statüs afk değil ise
      if (afkTimeout >= maxTimeout && afk === false) {
        afk = true;

        // Onay fonksiyonumuzu çağır
        getConfirmation();
      }
    }, 1000);

    // Onay Fonksiyonu
    function getConfirmation() {
      var result = confirm("Uzun süre işlem yapmadınız bu sekmeyi kapatmak istermisiniz?");
      if(result === true){
        // Onay Alındığında burası gerçekleşir
        alert('Kapatma işlemini kabul ettiniz');
      }
      else {
        // İptal Edildiğinde burası gerçekleşir
        alert('Kapatma işlemini iptal ettiniz');
      }
    }
  })
</script>

</body>
</html>
 
Uyarı! Bu konu 8 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı