Отменить ожидающий запрос Bloodhound в Твиттере typeahead.js
У меня есть твиттер typeahead.js, настроенный так:
var filteredSource = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '@Url.Action("Get", "Search")/',
prepare: function (query, settings) {
settings.url = settings.url + $('#filter-select').val() + '?q=' + encodeURIComponent(query);
return settings;
},
rateLimitBy: 'throttle',
rateLimitWait: 800
}
});
$('#search').typeahead({
hint: false,
highlight: true,
minLength: 3
}, {
name: 'filtered-source',
display: 'value',
limit: 50,
source: filteredSource,
templates: {
empty: [
'<div>',
' Unable to find any results.',
'</div>'
].join('\n'),
suggestion: Handlebars.compile(templateData)
}
});
Когда пользователь выполняет поиск, начинает набирать что-то вроде «ключа» и делает паузу, поисковый запрос отправляется на сервер с помощью Bloodhound. Когда пользователь добавляет буквы в поле ввода, на сервер отправляется другой запрос, например «ключевое слово».
Но «ожидающий» запрос «ключ» сначала ожидает завершения от браузера, а затем сервер обрабатывает второй запрос, и только после его завершения отображаются результаты.
Таким образом, может пройти много времени, прежде чем пользователь увидит какие-либо результаты.
Есть ли способ отменить ожидающий запрос с помощью Bloodhound при изменении ключевого слова?