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

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 по 14.07
втрати противника
орієнтовно склали:
1421810 ( +1120 ) особового складу
12131 ( +6 ) танків
24932 ( +1 ) бойових бронемашин
45911 ( +46 ) артилерійських систем
1931 ( +2 ) РСЗВ
1491 ( +2 ) засоби ППО
437 ( +0 ) літаків
353 ( +0 ) гелікоптерів
119862 ( +330 ) автомобільної техніки
33 ( +0 ) кораблі / катери
4899 ( +3 ) крилаті ракети
407201 ( +1508 ) БПЛА
4416 ( +4 ) спец. техніки
1905 ( +11 ) установок ОТРК/ТРК
2 ( +0 ) підводні човни