Tengo un cuadro de texto que cada vez que un usuario ingresa una letra realizo una búsqueda con una solicitud de ajax y muestro el resultado "en vivo" para el usuario. A menudo, cuando un usuario escribe las letras tarda más tiempo para que se realice la solicitud que para que el usuario ingrese una nueva letra, por lo tanto, se realiza una nueva solicitud antes de que la primera haya finalizado. Sería mucho mejor si el primero pudiera terminar antes de hacer la siguiente solicitud. ¿Hay una buena manera de hacer una nueva solicitud solo si la última solicitud ha finalizado?Solicitud de jquery ajax, esperar la última solicitud para terminar
Este es mi código de jQuery:
$("#MyTextBox").change(function() {
if (this.value.length > 2) {
$.ajax({
type: "GET",
url: "http://www.domain.com/Service.svc/Search?keyword=" + this.value,
dataType: "json",
success: function(data) {
//here I have some code that shows the result for the user
}
});
}
});
Gracias! Esto era exactamente lo que estaba buscando. Pero por alguna razón al escribir en mi texto, parece que cada vez que ingreso una carta es un poco problemático y cada letra aparece con una especie de retraso. La solicitud de AJAX debe enviarse de manera asíncrona, por lo que no debería afectar al cuadro de texto, ¿o sí? – Martin
Sería mejor asignar una función con código de limpieza como 'request_in_progress' en la configuración' completa' en lugar de 'success' en caso de que la solicitud falle. –