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>