Powiel możliwe:
Kill Ajax requests using JavaScript using jQueryAnulowanie żądań AJAX podczas lotu za pomocą Jquery .ajax?
Oto prosty kod pracuję z:
$("#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);
}
});
}
Zasadniczo, jeśli zdarzenie keyup jest zwolniony przed powrotem funkcja obtainFriendlist wynik (i uruchamia UIDisplayFriends (msg), muszę anulować żądanie podczas lotu. Problem, który miałem, polega na tym, że oni ld w górę, a następnie nagle wielokrotnie uruchamiana jest funkcja UIDisplayFriends.
Dziękuję bardzo dużo, a rada jest też pomocny
Podoba mi się to, co robisz z opóźnieniem, to miłe. Jednak czy nie istnieje jeszcze ryzyko, że żądania będą piętrzyć się, jeśli użytkownik jest powolnym pisarzem, uruchamiając nowe żądanie ajax z każdym naciśnięciem klawisza? –
To nadal będzie ryzyko, więc warto zastosować obie strategie, anulując stare zapytanie i powyższą metodę redukcji wywołań serwera. Trzeci ekran sprawdzałby, czy dane wyjściowe są zgodne z żądaniem. –
Doskonały. dziękuję, to jest bardzo pouczające – TaylorMac