Tengo un pequeño problema que acabo de encontrar, después de que pensé que este proyecto había terminado. Funcionó perfectamente en mi servidor local, pero cuando presioné el código en vivo, las imágenes pueden tardar medio segundo en cargarse correctamente, causando que una pequeña miniatura de la página aparezca sobre una imagen de carga. grrrajax - las imágenes de verificación se han cargado antes de escribir en la página
alt text http://img815.imageshack.us/img815/985/loading.jpg
Así qué está sucediendo? Bueno, primero se ejecuta una función en window.load
que creó una gran cantidad de elementos de la lista con un gif cargado como la imagen bg.
A continuación, esta función elimina una etiqueta <img>
en el primer elemento de la lista, con un onload
que llama a una segunda función
Este segundo ciclos de función a través de un archivo XML y envuelve la dirección URL en el xml en una etiqueta y pone <img>
en el próximo vacío LI
. aquí es donde yace el problema. Por el momento, pone <img src=$variable onload=loadnextimage() />
en el elemento Lista antes de que se haya cargado realmente.
Mi código:
$(window).load(function() {
txt="";
for(d=0;d<100;d++)
{
txt=txt + "<li class='gif' id='loading"+d+"'></li>";
}
document.getElementById('page-wrap').innerHTML=txt;
document.getElementById('loading0').innerHTML="<img src='images/0.jpg' onLoad='loadImages(0)' />";
});
function loadImages(i){
i++
$.ajax
({
type: "GET",
url: "sites.xml",
dataType: "xml",
async: "true",
success: function(xml)
{
var img = $(xml).find('image[id=' + i + ']'),
id = img.attr('id'),
url = img.find('url').text();
$('#loading'+i).html('<img src="'+url+'" onLoad="loadImages('+i+')" />').hide();
$('#loading'+i).fadeIn();
}
});
}
tengo la sensación de que puede ser bastante complicado lograr esto cómo lo tengo configurado, y tengo la sensación de que puede ser necesario crear un objeto img y esperar a que eso ¿¿¿carga???
Una vez que la página está almacenada en caché, la carga, obviamente, funciona bien, pero es un poco ont en la primera carga, así que tengo que solucionar esto. cualquier consejo bienvenido :) gracias