Ich arbeite an meinem ersten AJAX-Projekt, und ich habe durch die Einrichtung folgende Funktionen gestartet:Wie verwalte ich mehrere überlappende XMLHttpRequests?
function sendHTTPRequest(callback,filename,data) {
if (window.XMLHttpRequest) {
httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
httpRequest.onreadystatechange = callback;
httpRequest.open('POST',rootAddress+filename, true);
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpRequest.send(data);
}
function exampleCallback() {
if (httpRequest.readyState === XMLHttpRequest.DONE) {
if (httpRequest.status === 200) {
// successful, parse the XML data
} else {
// error
}
} else {
// not ready
}
}
Das hat gut funktioniert, aber ich habe jetzt zu dem Punkt, wo ich mehr als eine habe gleichzeitige HTTP-Anfrage, und meine einzige globale httpRequest
Variable schneidet es nicht. Es scheint mir, ich könnte ein Array verwenden, und .push
eine neue XMLHttpRequest auf den Stapel jedes Mal sendHTTPRequest()
aufgerufen wird, aber wie kann ich meine verschiedenen Callback-Funktionen, die Element im Stapel zu parsen? Oder ist das ein besserer Weg, diesen Prozess zu bewältigen? (Ich verwende diese, um Anfragen an verschiedene Seiten zu bearbeiten, mit Ergebnissen, die anders geparst werden müssen.)
Vielen Dank!
Ich weiß, wir sollen "Danke" Beiträge vermeiden, aber das ist wirklich unglaublich hilfreich und informativ. Danke für deine klare Erklärung und Verbesserungen! – TobyRush