Dal momento in cui si lavora con i timer bisogna capire che i programmi js non si comportano più in maniera sequenziale.
Se guardi lo script sotto vedrai che la logica è del tutto diversa.
codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<table summary="">
<tr>
<td id="range_count"></td>
</tr>
</table>
<script language="JavaScript" type="text/javascript">
<!--
secondi = 0;
stop = 0;
ind = 0;
function conta_all(str_range){
arr_ip = str_range.split(';');
//------ Primo range
ind = 0;
conta_single_range(arr_ip[ind]);
//------ Conta
conta();
} // function conta_all(str_range)
function conta_single_range(str_range2){
ar_range = str_range2.split('-');
start_ip = ar_range[0];
stop_ip = ar_range[1];
byt_start = start_ip.split('.');
byt_stop = stop_ip.split('.');
secondi = byt_start[3];
stop = byt_stop[3];
ip_str = byt_start[0]+"."+byt_start[1]+"."+byt_start[2];
} // function conta_single_range(str_range2)
function conta() {
if (secondi > stop) {
if (ind >= arr_ip.length-1) {
//------- Se tutti i range sono stati trattati mi fermo
return;
} else {
//------- Passo al range successivo
ind++;
conta_single_range(arr_ip[ind]);
} //if (ind > arr_ip.length-1)
} // if (secondi == stop)
document.getElementById('range_count').innerHTML= "Sfoglia il gruppo" + "
"+ ip_str+"."+secondi;
secondi++ ;
setTimeout("conta()",200);
} // function conta()
//uso della funzione
conta_all("192.168.0.180-192.168.0.200;192.168.3.1-192.168.3.40");
//-->
</script>
</body>
</html>