- Registriert
- 11.05.07
- Beiträge
- 3.878
hier erstmal mein Code bis jetzt
An sich funktioniert da alles, das ding ist nur, dass er schon im readystate 4 ist, bevor das Bild richtig gecached wurde. Also mein Grundgedanke war, dass durch die Ajax Funktion das Bild im Hintergrund erstmal gecahed wird und dass danach einfach die src vom img-tag verändert wird (habe schon auf anderen Seiten mit caching gearbeitet, waren dort aber nur Bilder von wenigen kb, somit kann man auch schon beim Aufbau der Seite cachen, hier aber sind die Bilder 0,5-1,5MB groß und ich denke, dass dann ein gesamtes cachen nicht in Frage kommt. Das einzige Problem an dieser Variante hier ist, dass die Funktion für readystate=4 viel zu früh aufgerufen wird.
Kann mir jemand sagen, woran das liegt oder ob ich einen generellen Denkfehler hier drinnen habe. gut wäre auch eine alternative Lösung, da ich ja nur das Ladedings da angezeigt haben will, solange das neue Bild noch nicht geladen wird.
Danke
Code:
var Bild;
function loadImage(string){ //string: Adresse zum Bild
document.getElementById('Drehteil').style.visibility='visible'; //so ein Ladeteil eben
var reqLoadPic=new XMLHttpRequest();
reqLoadPic.open('POST',string,true);
reqLoadPic.send(null);
reqLoadPic.onreadystatechange=function(){
if(reqLoadPic.readystate=4){
document.getElementById('Bild').src=string;
Bild=string;
document.getElementById('Drehteil').style.visibility='hidden';
}
}
}
An sich funktioniert da alles, das ding ist nur, dass er schon im readystate 4 ist, bevor das Bild richtig gecached wurde. Also mein Grundgedanke war, dass durch die Ajax Funktion das Bild im Hintergrund erstmal gecahed wird und dass danach einfach die src vom img-tag verändert wird (habe schon auf anderen Seiten mit caching gearbeitet, waren dort aber nur Bilder von wenigen kb, somit kann man auch schon beim Aufbau der Seite cachen, hier aber sind die Bilder 0,5-1,5MB groß und ich denke, dass dann ein gesamtes cachen nicht in Frage kommt. Das einzige Problem an dieser Variante hier ist, dass die Funktion für readystate=4 viel zu früh aufgerufen wird.
Kann mir jemand sagen, woran das liegt oder ob ich einen generellen Denkfehler hier drinnen habe. gut wäre auch eine alternative Lösung, da ich ja nur das Ladedings da angezeigt haben will, solange das neue Bild noch nicht geladen wird.
Danke