Hola a todos,
Se que hay muchos temas como este, pero este es distinto.
Veamos, aqui tengo el codigo para hacer esto posible:
Código:
<script language="javascript" type="text/javascript">
var RequestObject = false;
var Archivo = 'reload.php'; // Archivo a actualizar
window.setInterval("actualizacion_reloj()", 1000); // el tiempo X que tardará en actualizarse
if (window.XMLHttpRequest) //
RequestObject = new XMLHttpRequest();
if (window.ActiveXObject)
RequestObject = new ActiveXObject("Microsoft.XMLHTTP");
function ReqChange() {
// Si se ha recibido la información correctamente
if (RequestObject.readyState==4) {
// si la información es válida
if (RequestObject.responseText.indexOf('invalid') == -1)
{
// obtener la respuesta
var msgs = RequestObject.responseText.split('|');
// Buscamos la div con id online
document.getElementById("online").innerHTML = msgs[0];
}
else {
// Por si hay algun error
document.getElementById("online").innerHTML = "Error llamando";
}
}
}
function llamandonline() {
// Mensaje a mostrar mientras se obtiene la información remota...
document.getElementById("online").innerHTML = "";
// Preparamos la obtención de datos
RequestObject.open("GET", Archivo , true);
RequestObject.onreadystatechange = ReqChange;
// Enviamos
RequestObject.send(null);
}
function actualizacion_reloj() {
llamandonline();
}
</script>
Código HTML:
<div id="online">AQUI VA EL ARCHIVO QUE SE RECARGA</div>
El caso es que en mi pagina, cuando muestro los resultados actualizados, desaparece unos instantes lo que es el reload.php, por lo que lo que está debajo de éste (tablas y texto) sube debido a la ausencia de reload.php, y parece un circo.
Querria dos cosas,
1) Si lo que hay dentro del DIV es igual a la de la recarga, que no refresque ésta.
He probado con
Código:
if( document.getElementById("online").innerHTML !== msgs[0] ){
document.getElementById("online").innerHTML = msgs[0];
}
Pero no tuve suerte, a ver si ustedes me lo resuelven.
2) Que refresque cuando tenga definitivamente cargado el archivo, porque parpadea y no deberia si el ReadyState está en 4.
Si el segundo no puede resolverse, que le vamos a hacer =( fallo de las programaciones.
Un saludo y muchas gracias.