Duplicar posible:
Kill Ajax requests using JavaScript using jQueryCancelar las solicitudes AJAX en vuelo utilizando Jquery .ajax?
Aquí está el código simple que estoy trabajando con:
$("#friend_search").keyup(function() {
if($(this).val().length > 0) {
obtainFriendlist($(this).val());
} else {
obtainFriendlist("");
}
});
function obtainFriendlist(strseg) {
$.ajax({
type: "GET",
url: "getFriendlist.php",
data: "search="+strseg,
success: function(msg){
UIDisplayFriends(msg);
}
});
}
Esencialmente, si un evento keyup se dispara antes de que vuelva la función obtainFriendlist un resultado (y desencadena UIDisplayFriends (msg), necesito cancelar la solicitud en vuelo. El problema que he estado teniendo es que ellos ld up, y de repente la función UIDisplayFriends se dispara repetidamente.
Muchas gracias, y el asesoramiento es útil también
Me gusta lo que haces con el retraso, eso es bueno. Sin embargo, ¿no existe aún el riesgo de que las solicitudes se acumulen si el usuario es un escritor lento, lo que activa una nueva solicitud de Ajax con cada pulsación de tecla? –
Todavía sería un riesgo, por lo que querría aplicar ambas estrategias, cancelar la consulta anterior y el método anterior para reducir las llamadas al servidor. Una tercera pantalla estaría validando que la salida aún coincida con la solicitud. –
Excelente. gracias, esto es muy informativo – TaylorMac