Asynchronous.me - The XmlHttpRequest playground

Asynchronous.me

The XmlHttpRequest playground


1 Select Language


2 Select Type






3 Select Synchronicity
>>
4 Select Communication

Multiple parallel asynchronous requests (in JavaScript)




Example

<script type="text/javascript">
	function run() {
		var nbRequests = 3;
		var nbResponses = 0;
		// request 1
		print("request1");
		var xmlHttpRequest1 = new XMLHttpRequest();
		xmlHttpRequest1.open("GET", "something1?hello1", true);
		xmlHttpRequest1.onreadystatechange = function () {
			if (this.readyState == 4 && this.status == 200) {
				// response 1
				nbResponses++;
				print("response1=" + this.responseText);
				if (nbResponses == nbRequests) {
					done();
				}
			}
		};
		xmlHttpRequest1.send();
		// request 2
		print("request2");
		var xmlHttpRequest2 = new XMLHttpRequest();
		xmlHttpRequest2.open("GET", "something2?hello2", true);
		xmlHttpRequest2.onreadystatechange = function () {
			if (this.readyState == 4 && this.status == 200) {
				// response 2
				nbResponses++;
				print("response2=" + this.responseText);
				if (nbResponses == nbRequests) {
					done();
				}
			}
		};
		xmlHttpRequest2.send();
		// request 3
		print("request3");
		var xmlHttpRequest3 = new XMLHttpRequest();
		xmlHttpRequest3.open("GET", "something3?hello3", true);
		xmlHttpRequest3.onreadystatechange = function () {
			if (this.readyState == 4 && this.status == 200) {
				// response 3
				nbResponses++;
				print("response3=" + this.responseText);
				if (nbResponses == nbRequests) {
					done();
				}
			}
		};
		xmlHttpRequest3.send();
	}
	function done() {
		// end
		print("done");
	}
</script>