| 
 Отслеживание изменений value в input Здравствуйте, знаю были уже похожие темы, но ответа не нашел. Необходимо выполнить функцию если значение в поле было изменено и не менялось в течении скажем 5 секунд, если менялось то выждать еще 5 сек, если в течении 5 сек снова изменили, то снова 5 сек выждать и т. д. Как это сделать? Объясню зачем это нужно, я делаю подбор товара по параметрам (аналог расширенного поиска яндекс-маркета) на ajax и в одном из полей используется ползунок (trackbar). Все бы ничего, но если параметров на товар много, то если двигать ползунок туда сюда быстро - получим огромную нагрузку на БД и зависание. На яндекс маркете как раз организовано описанное выше отслеживание полей рядом с ползунками, думаю в тех же целях (запрос в БД не пройдет, пока пользователь не перестанет баловаться с ползунком). | 
| 
 
/**
* Функция не дает вызвать функцию больше чем timesPerSecond в секунду
* 
* @param {Function} fn функция которая будет вызываться
* @param {Number} timesPerSecond количество выполнений в секунду
* @return {Function} возвращает ссылку на функцию обертку
*/
function foo( fn, timesPerSecond ) {
    var oldStart = 0;
    return function() {
        var newStart = ( new Date() ).getTime();
        if ( newStart - oldStart < 1000 / ( timesPerSecond || 1 ) ) {
            return;
        }
        oldStart = newStart;
        return fn.apply( this, arguments );
    }
}
// Пример использования
// функция будет вызвана не чаще чем 2 раза в секунду
document.addEventListener( "click", foo(function( e ){
 console.log( "click to: " + e.target.nodeName );
}, 2 ), false );
 | 
| 
 если нужно вызывать функцию раз в 5 секунд, ставь вторым параметром значение 0.2, к примеру: 
var handler = foo(function() {
    // some code
}, 0.2 );
handler();
будет вызвана не чаще чем раз в пять секунд. | 
| 
 Соль в том - что интересней исследовать остановку ползунка на время стояния - вот коли он простоял не тронутый - пару секунд - отправляем запрос - каждое движение сбрасывает таймер тестирования "устаканивания" на 0 | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 | 
| 
 kosar, :write: Тут же Выше мастер отписал - подождите... | 
| Часовой пояс GMT +3, время: 21:39. |