Hintergrund vorgelegt: Wenn Benutzer ein button
seiner Klasse klickt zwischen class1
und class2
und diese Daten umgeschaltet wird, wird über AJAX
vorgelegt. Um zu bestätigen, dass diese Daten gespeichert sind, antwortet der Server mit js
(Aktualisierungsschaltfläche HTML
).Abbrechen AJAX-Request, wenn neue
Das Problem:, wenn ein Benutzer auf die Schaltfläche schneller als der Server trifft reagieren kann (dh trifft den Knopf schnell), wird die Taste hin- und herschalten, wenn die Server-Antworten kommen tatsächlich:
- Benutzer trifft Taste, Änderungen an
class2
über js (AJAX submitted) - den Benutzer auf, Änderungen an
class1
über js (AJAX submitted) - Server antworten AJAX-Request zum ersten und erfrischen html
class2
- Server antworten auf zweiten AJAX-Request, und erfrischen html
class1
Wie die Ajax-Anforderung abgebrochen werden kann, wenn ein neues Geschäft gemacht wird?
$('.button').click(function() {
$('this').toggleClass('class1 class2')
// submit ajax request
$.ajax({
url: '/update_link'
})
});
Wäre es nicht eine bessere Idee sein, eine Funktion auf der Schaltfläche setzen, dass es inaktiv für einige Sekunden nach dem Klicken macht? – Sander
Deaktivieren Sie einfach das Umschalten, bis die asynchrone Funktion eine Antwort oder Timeouts zurückgibt und einen Fehler zurückgibt. – Redu
http://stackoverflow.com/questions/446594/abort-ajax-requests-using-jquery – epascarello