Слава Україні!

debounce - функция задержки ввода

debounce - функция задержки ввода
5-го травня 2022, 7:58

HTML


<div id="wrapper">
    <input id="input" type="text" placeholder="input something..." />
    <span id="target"></span>
</div>

JavaScript


function debounce(cb, interval, immediate) {
    var timeout;
    
    return function() {
        var context = this, args = arguments;
        var later = function() {
            timeout = null;
            if (!immediate) cb.apply(context, args);
        };          
    
        var callNow = immediate && !timeout;
    
        clearTimeout(timeout);
        timeout = setTimeout(later, interval);
    
        if (callNow) cb.apply(context, args);
    };
};
    
function keyPressCallback() {
    var target = document.getElementById('target');
    var input = document.getElementById('input');
    
    target.textContent = input.value;
}

document.getElementById('input').onkeypress = debounce(keyPressCallback, 400);

Важлива інформація

Міністерство оборони
України
з 24.02 по 20.04
втрати противника
орієнтовно склали:
941100 ( +950 ) особового складу
10677 ( +1 ) танків
22271 ( +5 ) бойових бронемашин
26649 ( +49 ) артилерійських систем
1368 ( +0 ) РСЗВ
1139 ( +0 ) засоби ППО
370 ( +0 ) літаків
335 ( +0 ) гелікоптерів
45274 ( +112 ) автомобільної техніки
28 ( +0 ) кораблі / катери
3148 ( +0 ) крилаті ракети
33240 ( +64 ) БПЛА
3859 ( +1 ) спец. техніки
4 ( +0 ) установок ОТРК/ТРК
1 ( +0 ) підводні човни