Ich frage mich, was ist der beste Weg, doppelte Einreichungen zu stoppen, wenn Sie Jquery und Ajax verwenden?Stoppen Sie doppelte Ajax Submisions?
komme ich mit zwei möglichen Wegen, aber nicht sicher, ob diese die einzige 2.en
Auf Ajax startet alle Tasten deaktiviert, bis Anfrage erfolgt. 2 Probleme, die ich dabei sehe, ist, dass ich das jquery-Modell-Dialogfeld verwende, so dass ich nicht weiß, wie einfach es wäre, diese Schaltfläche zu deaktivieren, da ich nicht sicher bin, ob sie IDs haben. Zweitens, wenn die Anfrage hängt der Benutzer hat wirklich keine Möglichkeit, es erneut zu versuchen, da alle Tasten deaktiviert sind.
Ich bin auf der Suche nach etwas namens AjaxQueue zu diesem Zeitpunkt habe ich keine Ahnung, ob es ist, was ich brauche oder wie es funktioniert seit der Website, wo das Plugin anscheinend für die Wartung ist.
http://docs.jquery.com/AjaxQueue
bearbeiten
Ich denke, das aus einer Spin ist, was auf die ich suchte.
http://www.protofunc.com/scripts/jquery/ajaxManager/
Das einzige Problem, das ich mit diesem ajaxManager sehen ist, dass ich glaube, ich habe alle meine .post $, $, um ihre Art .get und $ .ajax diejenigen zu ändern.
Aber was passiert, wenn ich einen speziellen Parameter von $ .ajax brauche? Oder diese Tatsache mag ich mit .post und .get.
bearbeiten 2
ich denke, es in allen $ .ajax Optionen nehmen. Ich schaue immer noch darauf. Worüber ich mich jedoch nicht sicher bin, ist, dass ich denselben Konstruktor für alle Anfragen verwenden kann, die dieselben Optionen verwenden.
First you have to construct/configure a new Ajaxmanager
//create an ajaxmanager named someAjaxProfileName
var someManagedAjax = $.manageAjax.create('someAjaxProfileName', {
queue: true,
cacheResponse: true
});
Oder muss ich das oben genannte jedes Mal machen?
Wäre es nicht einfacher, die Eigenschaft 'timeout' zu verwenden? Oder funktioniert es nicht so, wie ich denke? :) –
@Vivin - Guter Punkt. Wenn Sie keine andere Logik verwenden, die Sie in 'setTimeout()' verwenden möchten, um zu entscheiden, ob Sie abbrechen möchten oder nicht, können Sie die Eigenschaft 'timeout' verwenden. Die 'request' -Variable ist ein Flag, wie in Ihrer Antwort, aber mit dem zusätzlichen Vorteil,' abort() '-Funktionalität bei Bedarf bereitzustellen. – user113716