Ich habe ein bisschen ein Problem, das ich gerade gefunden habe, nachdem ich dachte, dieses Projekt beendet wurde. Es funktionierte perfekt auf meinem lokalen Server, aber wenn ich den Code live aktivierte, konnten die Bilder eine halbe Sekunde dauern, um richtig geladen zu werden, wodurch ein kleines Seiten-Thumbnail über einem Ladebild angezeigt wurde. grrrAjax - überprüfen Sie Bilder geladen haben, bevor Sie auf die Seite schreiben
alt text http://img815.imageshack.us/img815/985/loading.jpg
Also was ist passiert? Nun, zuerst eine Funktion läuft auf window.load
, die eine große Anzahl von Listenelementen mit einem Lade-GIF als das BG-Bild erstellt.
Dann ist diese Funktion erscheint ein <img>
Tag in das erste Listenelement mit einem onload
, die eine zweite Funktion
Diese zweite Funktion Zyklen über eine XML-Datei und hüllt die URL in der XML in einem <img>
Tag und Puts ruft es in der nächsten leeren LI
. Hier liegt das Problem. Im Moment legt es die <img src=$variable onload=loadnextimage() />
in das Listenelement, bevor es tatsächlich geladen wurde.
Mein Code:
$(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();
}
});
}
Ich habe das Gefühl, es kann ziemlich schwierig dies zu erreichen sein, wie ich es einrichten, und ich habe das Gefühl, ich brauche kann, dass, um ein img Objekt und warten erstellen Belastung???
Sobald die Seite zwischengespeichert ist, funktioniert das Laden offensichtlich gut, aber es ist ein bisschen ein Schmerz beim ersten Laden, also muss ich das beheben. jeder raten willkommen :) danke