fnDelay

HTML

Пример функции fnDelay, <a href="http://plutov.by/post/fn_delay">теория</a>
<br/><br/>
<input type="text" name="search" id="search" placeholder="Начните вводить" />
<br/>
Функция search вызвана раз: <span id="results"></span>

JavaScript

fnDelay = (function(){
    var timer = 0;
    return function(callback, ms){
        clearTimeout(timer);
        timer = setTimeout(callback, ms);
    };
})();

function search() {
    document.getElementById('results').textContent = ++counter;
}

var counter = 0;
document.getElementById('search').addEventListener('keyup', function() {
    fnDelay(function() {
        search();
    }, 200);
});