Второй день бьюсь над проблемой:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>example</title>
<script type="text/javascript">
//Попытка синхронного вып. асинхронн. запр
function getXmlHttp(){
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (ee) {
}
}
if (typeof XMLHttpRequest!='undefined') {
return new XMLHttpRequest();
}
}
//выполнение списка url одновременно
function XmlHttpMulti(urls) {
var result=new Array(); //сюда будет записан результат
var c=parseInt(urls.length);
for(var i=0; i<urls.length; i++) {result[i]=undefined; get(urls[i], i);}
function get(url, n) {
var xmlhttp = getXmlHttp();
xmlhttp.open('GET', url, true);
xmlhttp.onreadystatechange = function() {
if ( (xmlhttp.readyState==4) && (xmlhttp.status==200) ) {c--; result[n]=xmlhttp.responseText;}
}
xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
xmlhttp.send(null);}
//тут будет что-то тормаозящее скрипт пока не прогрузятся все url
while(c!=0) {alert('это как-бы пауза');}//почему если убрать alert() повисает страница?
return result;
}
var r=XmlHttpMulti(['http://webiteam.ru/test/multicurl/test.php?data=This+is+get+first','http://webiteam.ru/test/multicurl/test.php?data=This+is+get+second','http://webiteam.ru/test/multicurl/test.php?data=This+is+get+third']) ;
function test(i) {
document.getElementById('text').innerHTML = r[i];}
</script>
</head>
<body>
<a href="#" onClick="test(0)" >Show URL #1</a> <a href="#" onClick="test(1)" >Show URL #2</a> <a href="#" onClick="test(2)" >Show URL #3</a>
<div id="text">I am a Text</div>
</body>
</html>
Собственно проблема в этом:
//тут будет что-то тормаозящее скрипт пока не прогрузятся все url
while(c!=0) {alert('это как-бы пауза');}//почему если убрать alert() повисает страница?
Что я делаю не так?