reinhard_muc: Parallele AJAX-Aufrufe verarbeiten (Abschluß)

Beitrag lesen

Nachtrag zum Abschluß des Postings:
Per Google habe ich aus den weiten des Internets eine sehr schöne Lösung für mein Problem gefunden. Sie wickelt parallele AJAX-calls problemlos nebeneinander ab, ist aber auch für einzelne Calls sehr flexibel. Ich finde es originell, wie die Funktion für die Weiterverarbeitung des Response in den request integriert ist.
Da der originale Quelltext auf der Community-Seite (wiki.AJAX-Community.de) voller Flüchtigkeitsfehler steckt, hier nochmal der bereinigte Quelltext, der eigentlich funktionieren müßte (zumindest bei mir im IE 7). Dank an den unbekannten Programmierer "narkat".
---------------------------------------------

function request(url, data, type, callback) {  
	type = type.toUpperCase();  
  
	// try to create an XHR-Instance  
	var xhr = false;  
	if( window.XMLHttpRequest && ! window.ActiveXObject) {  
		xhr = new XMLHttpRequest();  
	} else if ( window.ActiveXObject ) {  
		try {  
			xhr = new ActiveXObject("Msxml2.XMLHTTP");  
		} catch(e) {  
			try {  
				xhr = new ActiveXObject("Microsoft.XMLHTTP");  
			} catch(e) {  
				xhr = false;  
			}  
		}  
	}  
	if ( ! xhr ) {  
		throw 'browser not ajax-capable';  
	}  
  
	//for GET-Requests append param-string to URL  
	if ( type == 'GET' ) {  
		url += '?'+data;  
	}  
  
	xhr.onreadystatechange = function() {  
		if( xhr.readyState == 4 && xhr.status == 200 ) {  
			callback(xhr);  
		}  
	};  
	xhr.open(type, url, true);  
	xhr.send( type != 'GET' ? data : null );  
}

-----------------------------------------
verwendet wird das ganze dann wie folgt:
-----------------------------------------

request('index.php', 'action=foo&bar=123', 'get', function(xhr) {  
	alert('antwort: '+xhr.responseText);  
});

Für die callback-Funktion kann man natürlich auch selbstdefinierte Funktionen verwenden. Syntax dann:
function(xhr){<Funktionsname>(xhr, <ggf. weitere Parameter>)}
Schöne Grüße,
Reinhard