İşlev.debounce - ilgilenio/Otag GitHub Wiki

.debounce

Bu işlev prototipi işlev çağrılarını sınırlandırmak, gecikmeli işlev tanımlamak amaçlarıyla kullanılır. Bağlam korunur.

Örnek:

debounceLog=console.log.debounce(3000)
debounceLog('Armut') //3s sonra Armut yazar

Eğer bu örnekte 3s içinde/arka arkaya birden fazla debounceLog çağırırsanız sadece son çağrınız çalıştırılır.


Örnek 2

let Öge=''.disp(0) //Görünürlüğü Kapat
    .prop({
        disp:Element.prototype.disp.debounce(1000)
    })
O.ready.then(b=>b.append(Öge.disp(1))) //Görünürlüğü Aç,Sayfaya ekle

Yukarıdaki örnekte Otağ'da bulunan .disp yöntemini .debounce kullanılanıyla değiştirdik. Öge belgeye konulduktan 1sn sonra gözükecek.

Ek Bilgi:

.debounce içinde bağlam korunduğu için bunu yapmamız olağan. Eğer korunmasaydı .disp uygulayacağımız öge, yöntem içinde ulaşılamazdı


Örnek 3

document.addEventListener("scroll",(function(){
    console.log('çalıştı  ',+new Date)
}).debounce(100));

Bu örnek ise .debounce yönteminin en yaygın kullanıldığı örnektir. Çok fazla çağrılan işlevlerin belirli bir süre için sınırlandırılmasına olanak vererek yüksek iş gücü gerektiren işlevlerin sık çalışmasının önüne geçerek verimi artırır, taşınabilir(mobil) aygıtların pilini korur.