Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/10/2010, 02:07
xenon254
 
Fecha de Ingreso: noviembre-2007
Ubicación: Zamora (Spain)
Mensajes: 251
Antigüedad: 17 años
Puntos: 1
Exclamación Respuesta: Precarga de imágenes dentro de una función Ajax

Muy buenas

Gracias de nuevo. Parece que hemos avanzado pero no logrado el éxito.

Te indico las nuevas líneas que tengo:
Código:
function nuevoAjax(){
	var xmlhttp = false;
	try{
	  xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
	} 
	catch(e){
		try{
			xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
		}
		catch(E){
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') 
		xmlhttp = new XMLHttpRequest();
	return xmlhttp;
}

var lista_imagenes = new Array();

function testLoaded(imgs){
	var i;
	var incompleto = 0;
	var ruta;
	for(i in lista_imagenes)
		ruta = lista_imagenes[i].src;
		document.formulario.user.value = ruta.substring(28,ruta.length)+' > '+i;
		if (!lista_imagenes[i].complete){
			incompleto = 1;
    			setTimeout('testLoaded()', 300);
                }

	if (incompleto ==0){
		window.location.replace('inicio.html');
	}
}

function auth(){
	var f = document.formulario;
	c = document.getElementById('status');
	
	user=f.user.value;
	pass=hex_sha1(f.pass.value);
	
	ajax=nuevoAjax();
	c.innerHTML = 'Validando...
	ajax.open("POST", "includes/auth.inc.php",true);
	ajax.onreadystatechange=function(){
		if (ajax.readyState==4)
		    if (ajax.status==200){
				if (ajax.responseText == 'Err 1')
					c.innerHTML = 'Login y/o Pass incorrectos.';
				else if (ajax.responseText == 'Err 2')
					c.innerHTML = 'Se ha producido un error';
				else{
					c.innerHTML = 'Cargando inteface';
					var imagenes = ajax.responseText.split(",");
					var i;
			
					for(i in imagenes){
						lista_imagenes[i] = new Image();
						lista_imagenes[i].src = 'images/'+imagenes[i];
					}
					testLoaded();
				}
			}
	}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send("user="+user+"&pass="+pass);
}
- He cambiado el lugar de declaración del array de las imágenes.
- Añadí un pequeño control para ir mostrando en una casilla del formulario las imágenes que van siendo analizadas.
- He subido el tiempo del setTmeout por si era el motivo que ahora explico.

En Firefox va mostrando progresivamente las imágenes en la casilla del formulario. Realiza como dos pausas y en el título del programa me marca "No responde", a la tercera pausa se queda colgado. No siempre indicando el mismo archivo.

Dejo claro que el array no hay elementos tipo ".", "..", ".ico" ni "html" que puedan entorpecer al código en su carga.

En Iexplorer no deja mostrar los archivos que pasan a ser indicados por el input text pero acaba colgándose tanto que me toca reiniciar el router...


¿Alguna nueva idea?. Mil gracias.