Wenn ich jQuery.ajax()
innerhalb einer Schleife anrufe, würde es bewirken, dass der Aufruf in der aktuellen Iteration den letzten Aufruf überschreibt oder ein neues XHR-Objekt für die neue Anforderung zugewiesen wird?
Ich habe eine Schleife, die das macht, während ich aus dem Konsolenprotokoll die Anfragen erledigt 200 ok
sehe, aber nur die Ergebnisdaten der letzten Anfrage in der Schleife werden von der Anfrage success callback
als angenommen gespeichert.
der Code:
%Vor% Sie benötigen eine Schließung für key
:
Auf diese Weise stellen Sie sicher, dass der Schlüssel in jedem Ajax-Erfolgsrückruf immer korrekt ist. aber ansonsten sollte es funktionieren
Ich habe eine kleine Abschlussdemonstration mit Timeout anstelle von Ajax gemacht, aber das Prinzip ist dasselbe:
Sie müssen async: false in Ihrer Ajax-Anfrage verwenden. Es sendet die Ajax-Anfrage synchron und wartet darauf, dass die vorherige Anfrage beendet und die nächste Anfrage gesendet wird.
%Vor%Ich glaube, was hier passiert, hat mit der Schließung zu tun. In dieser Schleife:
%Vor% Die Variable key
wird außerhalb der for-Schleife definiert. Wenn Sie also zu den Callbacks kommen, hat sich der Wert wahrscheinlich geändert. Versuchen Sie stattdessen Folgendes:
Tags und Links jquery ajax xmlhttprequest