Como han notado muchas personas en el hilo, solo porque la solicitud se cancela en el lado del cliente, el servidor aún procesará la solicitud. Esto crea una carga innecesaria en el servidor porque está haciendo un trabajo que hemos dejado de escuchar en el front-end.
El problema que estaba tratando de resolver (que otros también pueden encontrar) es que cuando el usuario ingresó información en un campo de entrada, quise disparar una solicitud de un tipo de sensación de Google Instant.
Para evitar disparar solicitudes innecesarias y mantener la rapidez del front-end, hice lo siguiente:
var xhrQueue = [];
var xhrCount = 0;
$('#search_q').keyup(function(){
xhrQueue.push(xhrCount);
setTimeout(function(){
xhrCount = ++xhrCount;
if (xhrCount === xhrQueue.length) {
// Fire Your XHR //
}
}, 150);
});
Básicamente, esto enviará una solicitud cada 150 ms (una variable que puede personalizar para sus propias necesidades). Si usted está teniendo problemas para entender qué es exactamente lo que está pasando aquí, registrar xhrCount
y xhrQueue
a la consola justo antes del bloque if.
$.ajaxStop
?