Я использую следующий код (написанный другим пользователем) для ограничения запросов ajax в функции livesearch:
JSFiddle, если вы предпочитаете демонстрацию: http: //jsfiddle.net/4xLVp/
Однако это кажется ошибочным. Очистка значений с помощью Ctrl + shift + стрелка назад
и повторный ввод вызывает шквал запросов. Пустые значения также вызывают запрос. Это не кажется правильным, особенно по сравнению с автозаполнением jQuery UI , где задержки запросов кажутся более измеренными.
$('##tag-search').keyup(function() {
var elem = $(this);
if (elem.val().length >= 2) {
elem.data('search',search).clearQueue().stop().delay(1000).queue(function() {
$.ajax({ // ajax stuff
'success': function(data){ /*show result*/ }
});
if (elem.data('search') != string) return;
});
} else if (string.length <= 1) { /*show original content*/ }
});
Есть ли лучший способ справиться с этим?