Özellikle birkaç saniye bekledikten sonra reklam geçmeli sitelerde (5'ten geri sayar ve sonra link çıkar) sadece sekme aktifken sayacın ilerlediğini görürsünüz. Başka sekmeye geçtiğinizde ya da tarayıcıyı minimize ettiğinizde sayaç ilerlemez. Peki bu sayfayı geliştiren kişiler o sekmenin o esnada aktif ya da pasif olduğunu nasıl kontrol ediyorlar? Bunun cevabı çoğu zaman olduğu gibi ine javascript.
Çoğunlukla dijital reklam sitelerinde ve CPC türündeki platformlarda da arka planda benzer mantıkta çalışan bir sayaç vardır ve yayıncı ile kullanıcının olası suistimal denemelerini bu yöntemle denetlerler.
Sadece sayfa aktifken ilerleyen, başka sekmelere geçtiğinizde ise duran basit bir saniye sayacı uygulaması geliştirdim ve kodlarını da aşağıda paylaşıyorum.
<body>
<div class='container'>
Saniye : <div id='saniye'></div>
</div>
<script type='text/javascript'>
var sayi = 0;
var tekrar;
// Aktif
window.addEventListener('focus', startTimer);
// Aktif değil
window.addEventListener('blur', stopTimer);
function timerHandler() {
sayi++;
document.getElementById("saniye").innerHTML = sayi;
}
// zamanlayıcıyı başlat
function startTimer() {
console.log('focus');
tekrar = window.setInterval(timerHandler, 1000);
}
// zamanlayıcıyı durdur
function stopTimer() {
window.clearInterval(tekrar);
}
</script>
</body>