Que tal
memoadian,
Si lo miras con firebug te vas a dar cuenta de lo que sucede, estas sobreecribiendo el request, en realidad en tu caso precisas 1 objeto xmlhttprequest por peticion, deberias separar la creacion del objeto del updater, podria ser algo asi:
index.html
Código HTML:
Ver original<title>Refresca un div tag sin necesidad de refrescar toda la pagina
</title> <h3>Refrescar div's tag con Ajax
</h3>
tiempo.php
Código PHP:
Ver original// Formateamos la salida de la variable.
$str = "It is %a on %b %d, %Y, %X - Time zone: %Z";
// Printeamos el resultado
ajax.js
Código Javascript
:
Ver originalfunction newXMLHttpRequest(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
} catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
} catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
alert("Tu explorador no soporta AJAX.");
return false;
}
}
}
return xmlHttp;
}
var requests = {}
function refreshdiv(url, container, seconds){
if(!requests[container]) requests[container] = newXMLHttpRequest();
var xmlHttp = requests[container];
// Timestamp for preventing IE caching the GET request
var fetch_unix_timestamp = '';// lets declare the variable
fetch_unix_timestamp = function() {
return parseInt(new Date().getTime().toString().substring(0, 10))
}
var timestamp = fetch_unix_timestamp();
var nocacheurl = url + '?t=' + timestamp;
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState==4){
document.getElementById(container).innerHTML = container + '::' + xmlHttp.responseText;
setTimeout(function(){refreshdiv(url, container, seconds)}, seconds * 1000);
}
}
xmlHttp.open('GET', nocacheurl, true);
xmlHttp.send(null);
}
window.onload = function startrefresh(){
refreshdiv('tiempo.php', 'timediv', 1);
refreshdiv('tiempo.php', 'timediv2', 3);
refreshdiv('tiempo.php', 'timediv3', 5);
refreshdiv('tiempo.php', 'timediv4', 8);
}
lo que deberias hacer es cambiar las opciones en refreshdiv por las correspondientes a tus 4 peticiones.
Saludos.