Gracias por ese dato de los inicios() ;). Lo aplicaré apenas termine con esto.
El script ya funciona perfecto. En algún lugar había dejado un paréntesis o coma de más y por eso se estancaba
. Ahora anda fino.
Estuve casi toda la madrugada en esto. Al menos logré entender un poco más el script y saber por dónde vienen los disparos. Sin embargo me quedan dos dudas al respecto:
1.- Cada caja de noticias tiene un botón que quisiera habilitar para recargar los artículos individualmente ¿Cómo podría ser ese enlace teniendo en cuenta que cada caja necesita actualizarse individualmente?. La intención es que el usuario haga clic y sólo se recargue la caja que éste quiere, en lugar de recargarse todas.
2.- Noté la ausencia del preloader y de verdad lo necesito porque pienso asignarlo a un botón por razones de usabilidad, ya que me parece importante que el usuario esté al tanto del estado de carga, debido a lo que se tardan los servidores externos en devolver el resultado. Efectué una modificación para agregarlo y
casi funciona
:
Código PHP:
function Cargar(url, capa, prel){
var contenido, preloader;
contenido = document.getElementById(capa);
preloader = document.getElementById(prel);
ajax= new NuevoAjax();
ajax.open("GET", url, true);
ajax.onreadystatechange=function(){
if(ajax.readyState==1){
preloader.innerHTML = "Cargando Servidor";
preloader.style.background = "url('imagenes/ajax-loader.gif') no-repeat";
}else if(ajax.readyState==4){
if(ajax.status==200){
contenido.innerHTML = ajax.responseText;
preloader.innerHTML = "Cargado";
preloader.style.background = "none";
inicio();
}else if(ajax.status==404){
preloader.innerHTML = "La página no existe";
}else{
preloader.innerHTML = "Error:".ajax.status;
}
}
}
ajax.send(null);
}
function actua(url, capa, prel) {
this.url = url;
this.capa = capa;
this.prel = prel;
}
carga = new Array();
cargaActual = 0;
carga[0] = new actua("data/aporrea.php", "capa1", "prel1");
carga[1] = new actua("data/mundial.php", "capa2", "prel2");
Seguramente el error está en cómo puse la función. Creo que el "prel" está mal declarado (después de carga[].capa):
Código PHP:
function inicio() {
if (cargaActual < carga.length) Cargar(carga[cargaActual].url, carga[cargaActual++].capa, carga[cargaActual++].prel);
}
window.onload=inicio;
Supongo que ese ++ es un post incremento como en php, pero de javascript no me pregunten porque estoy bajo cero
. Si es así, veo que
carga[].url tiene un valor y
carga[].capa se incrementa a 1. Estuve buscando la manera de incrementar
carga[].prel a 1+1 y no lo logré ¿Es esa la solución?.