madhippie: AJAX mehrere Requests parallel laufen lassen und Status abfragen

Beitrag lesen

Moin,

also ich hab nochmal etwas rumgespielt und im Grunde funktioniert, zumindest auf AJAX Seite alles so wie ich es mir vorstelle allerdings hab ich da noch ein kleines Problem welches ich mir nicht erklären kann. Mein Code sieht nun wie folgt aus:

  
	function meincallback(i) {  
		  
		alert(i);  
		  
		 if(client[i].readyState == 4){  
  
			 if(client[i].status == 200){  
  
				 	alert(client[i].responseText);  
  
			}  
  
		 }  
			  
	}  
  
		  
	var url = "http://example.com";  
	var name = "test";  
	  
	  
	//Create XML String  
	var client = new Array();  
	var services = new Array("http://blogsearch.google.com/ping/RPC2", "http://api.moreover.com/ping");  
	  
	for (var i = 0; i < services.length; i++) {  
		  
  
		  
		  
		var param = "name=" + name + "&url=" + url + "&service=" + services[i];  
  
		client[i] = new XMLHttpRequest();  
		  
		client[i].onreadystatechange = function() { meincallback(i); };		  
		client[i].open( "POST", "/pingtool/ping_ixr.php", true);  
		client[i].setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
		client[i].setRequestHeader("Content-Length", param.length );  
		client[i].setRequestHeader("Connection", "close");  
				  
		client[i].send(param);  
		  
	  
	}  

Ihr seht oben im Callback das alert(i); Beim Durchlaufen wirft das Skript dann folgendes aus:

0
0
0
0
Response.Text vom ersten Durchlauf
0 (?)
Response.Text vom ersten Durchlauf(?)

und das gleiche Schema dann beim 2. Durchlauf.

Wenn ich das alert(i); rausnehme wird gar nichts ausgegeben und die FireBug Konsole meldet, dass die Anfragen korrekt durchgeführt wurden und schmeißt dahinter 4x "Error: client[i] is not defined" aus.

Sehe ich den Wald vor lauter Bäumen nicht?

Beste Grüße und vielen Dank im Voraus,
madhippie