Ajax: Mehrere XMLHttpRequest's, da sonst bei neuem Request "Datenaustausch"

Fabian Frank

Erfahrenes Mitglied
Buonasera,

mir ist gestern ein Problem aufgekommen, dass ich zwar "vorübergehend" gelöst habe, indem ich einfach eine zweite Variable mit einem XMLHttpRequest initialisiert habe, jedoch wundert mich dieses Phänomen etwas.

Folgendes: Ich erstelle eine Variable mit einem XMLHttpRequest, nach folgendem Muster:

Code:
if (navigator.appName.search("Microsoft") > -1) {
	//resObjekt = new ActiveXObject("Microsoft.XMLHTTP");
	resObjekt = new ActiveXObject("MSXML2.XMLHTTP");
} else {
	resObjekt = new XMLHttpRequest();
	}

Dann benutze ich dies, um einen Request auszuführen, der Daten nachfordert. Wenn ich dann jedoch dieses resObjekt benutze, um weitere Daten nachzuladen, werden zum Beispiel Variablen, die folgendermaßen deklariert sind

Code:
var diesesundjenes = resObjekt.responseText

wieder geleert (Inhalt: undefined).

Jetzt habe ich das Problem vorübergehend insofern gelöst, dass ich einfach ein zweites XMLHttpRequest initialisiere, nach dem Muster:

Code:
if (navigator.appName.search("Microsoft") > -1) {
	//resObjekt2 = new ActiveXObject("Microsoft.XMLHTTP");
	resObjekt2 = new ActiveXObject("MSXML2.XMLHTTP");
} else {
	resObjekt2 = new XMLHttpRequest();
	}

Läuft. Aber mal ganz ehrlich, das ist äußerst dämlich, vorallem wenn sich das Nachfordern von Daten immer und immer weitere steigert, wäre ich demnächst an dem Punkt angelangt, wo ich 10 Dieser verschiedenen Request's bräuchte.

Ein weiterer Lösungsansatz war, die Variable einfach nochmal zu speichern, nach dem Motto

Code:
var diesundjenes = resObjekt.responseText;
diesundjenes = diesundjenes;

Naja, wie gesagt, das kommt mir alles sehr, sehr spanisch vor. Deswegen meine Frage an euch: Kennt jemand dieses Problem, und weiß einen Ausweg an verschiedenen XMLHttpRequest's vorbei?

Ich danke euch für's lesen,

Ciao!
 
Wäre mir nicht bekannt, macht auch keinen Sinn. Packe den Code zum erstellen eines neuen XHR-Objects in eine Funktion, rufe die Funktion auf wenn du sie brauchst, nicht im Vorhinein.

Zur kurzen Erklärung: In jeder Instanz (in jedem XHR-Object) sind Informationen gekapselt, die nur diesen einen Request betreffen, eine Mehrfachnutzung ist demnach unsinnig. Würdest du ein und das selbe XHR-Object für mehrere Requests nutzen (können), so würden diese Informationen überschrieben.

Wenn du auf einer Seite beispielsweise mehrere Requests benötigt, so ist es eher sinnvoll zu überlegen, ob du nicht einen Request nutzen kannst und serverseitig dafür sorgst, dass ein Request ausreicht, um alle benötigten Daten als Antwort (z.B. im JSON-Format) zu erhalten.
 

Neue Beiträge

Zurück