Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   как пропускать слишком частые события? (https://javascript.ru/forum/events/43783-kak-propuskat-slishkom-chastye-sobytiya.html)

FreeVice 20.12.2013 13:29

как пропускать слишком частые события?
 
У меня в текстбоксе набирается поисковая строка и после каждого нажатия делается ajax-запрос на сервер.

Для интерактивности, хотелось бы избавить пользователя от кнопки после ввода. Но, когда набирается длинная строка, получается слишком много запросов.

Я бы хотел, чтобы запрос реагировал не сразу, а только если прошло некоторое время и делать запрос только по последнему варианту. Как это можно сделать?

Вот пример ajax:

$("#search-by-account").on("keyup", SearchByAccountAndName);

function SearchByAccountAndName() {
var accountSearchString = $('#search-by-account').val();

$.post("/SearchByAccountAndName", {
accountSearchString: accountSearchString,
}, function (data) {
$('#content').html(data);
});
}

danik.js 20.12.2013 14:36

var timerId = null;
$("#search-by-account").on("keyup", function() {
    clearTimeout(timerId);
    timerId = setTimeout(SearchByAccountAndName, 500);
});

ANDRUkomod 20.12.2013 14:40

+ через timeout


Часовой пояс GMT +3, время: 04:28.