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

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 по 16.03
втрати противника
орієнтовно склали:
1279930 ( +760 ) особового складу
11781 ( +0 ) танків
24215 ( +2 ) бойових бронемашин
38457 ( +19 ) артилерійських систем
1687 ( +1 ) РСЗВ
1333 ( +1 ) засоби ППО
435 ( +0 ) літаків
349 ( +0 ) гелікоптерів
83624 ( +111 ) автомобільної техніки
33 ( +1 ) кораблі / катери
4468 ( +0 ) крилаті ракети
181153 ( +1883 ) БПЛА
4091 ( +2 ) спец. техніки
4 ( +0 ) установок ОТРК/ТРК
2 ( +0 ) підводні човни