Как отметили многие в потоке, только потому, что запрос отменен на стороне клиента, сервер все равно обработает запрос. Это создает ненужную нагрузку на сервер, потому что он выполняет работу, которую мы прекратили слушать на внешнем интерфейсе.
Проблема, которую я пытался решить (к которой могут столкнуться и другие), заключается в том, что, когда пользователь вводил информацию в поле ввода, я хотел отменить запрос о типе чувствительности Google Instant.
Чтобы не запускать ненужные запросы и поддерживать работоспособность внешнего интерфейса, я сделал следующее:
var xhrQueue = [];
var xhrCount = 0;
$('#search_q').keyup(function(){
xhrQueue.push(xhrCount);
setTimeout(function(){
xhrCount = ++xhrCount;
if (xhrCount === xhrQueue.length) {
// Fire Your XHR //
}
}, 150);
});
По сути, это будет отправлять один запрос каждые 150 мс (переменная, которую вы можете настроить для своих нужд). Если у вас возникли проблемы с пониманием того, что именно здесь происходит, войдите xhrCount
иxhrQueue
в консоль непосредственно перед , если блок.
$.ajaxStop
?