Merhaba arkadaşlar,
Sitemizde dinamik arama kısmı yaptık lakin her keyup event'ında ajax isteği gönderiyor. Bu durum benim hoşuma gitmedi ve ajax isteğinden önce yazmayı bitirmemi beklemesini istedim. Bende araştırdım bir kod bloğu buldum uyguladım gayet güzel çalıştı. Ama nasıl çalıştığını anlamadım. Rica etsem aşağıdaki kod bloğunu bana satır satır açıklayabilir misiniz ? Javascript eksiklerim var.
Teşekkür ederim.
Saygılar
ES5 öncesi
function delay(callback, ms) {
var timer = 0;
return function() {
var context = this, args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
callback.apply(context, args);
}, ms || 0);
};
}
// Example usage:
$('#input').keyup(delay(function (e) {
console.log('Time elapsed!', this.value);
}, 500));
ES5 ve ES6
function delay(fn, ms) {
let timer = 0
return function(...args) {
clearTimeout(timer)
timer = setTimeout(fn.bind(this, ...args), ms || 0)
}
}