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

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 по 08.11
втрати противника
орієнтовно склали:
1150100 ( +1190 ) особового складу
11330 ( +0 ) танків
23544 ( +1 ) бойових бронемашин
34321 ( +20 ) артилерійських систем
1538 ( +3 ) РСЗВ
1239 ( +1 ) засоби ППО
428 ( +0 ) літаків
347 ( +1 ) гелікоптерів
66795 ( +72 ) автомобільної техніки
28 ( +0 ) кораблі / катери
3918 ( +0 ) крилаті ракети
78928 ( +250 ) БПЛА
3993 ( +0 ) спец. техніки
4 ( +0 ) установок ОТРК/ТРК
1 ( +0 ) підводні човни