У меня есть поле автозаполнения поиска по каждому попаданию, и я заставил его отправлять запросы каждые 500 мс.
Но иногда поисковый контроллер отвечает примерно через 5 секунд. Проблема в том, что каждый запрос все еще находится в стеке, и все запросы будут выполнены, даже если клиент больше не ищет.
Это заставляет клиента ждать дальнейших действий на основе ajax, пока все предыдущие запросы не будут выполнены.
Решением, которое я пытаюсь реализовать, является использование метода .abort () в ajax следующим образом:
var currentRequest =null;
function keyUp(...){
if(currentRequest!=null){
currrentRequest.abort();
}
currentRequest = $.get(...);
Но, несмотря на это, на стороне сервера контроллер все еще получил все ожидающие запросы, которые были отменены с помощью .abort()
.
Есть ли способ определить состояние подключения клиента, чтобы избежать обработки запросов на стороне сервера?