Eso sucede porque ejecutas el bucle
for
una sola vez, además, estoy viendo que al cargar la página, ejecutas la función, pero también lo haces dentro del bucle y lo que es peor, creas y ejecutas a la función en cada iteración del bucle.
Deberías de tener el código de esta manera:
Código Javascript
:
Ver originalvar datos = [
{divid: 1, url: "cuadros/1.php"},
{divid: 2, url: "cuadros/2.php"}
],
total = datos.length;
function objetoajax1(divid, url){
var xmlHttp,
timestamp,
procesourl,
i;
try{
xmlHttp = new XMLHttpRequest();
}
catch (e){
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("Tu explorador no soporta AJAX.");
return false;
}
}
}
timestamp = parseInt(new Date().getTime().toString().substring(0, 10));
procesourl = url + "?t=" + timestamp;
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
document.getElementById(divid).innerHTML = xmlHttp.responseText;
}
}
xmlHttp.open("GET", procesourl, true);
xmlHttp.send(null);
}
setInterval(function(){
for (i = 0; i < total; i++){
objetoajax1(datos[i].divid, datos[i].url);
}
}, 4000);
De este modo, ejecutarás la actualización de todos los
<div>
cada cuatro segundos, aunque te advierto que de esta manera, solo lograrás sobrecargar al servidor de peticiones. Te recomiendo leer acerca de WebSockets.
Algunos enlaces de interés:
Saludos