Sequenzielle Abarbeitung?
Justus
- javascript
0 Thomas J.S.0 Mathias Brodala0 Justus0 Mathias Brodala0 Justus
0 plan_B0 plan_B
0 Thomas J.S.
2 wahsaga
Hallo,
Ich möchte gerne einige Bilder in den Cache vorladen und erst wenn dieser Vorgang abgeschlossen ist auf die nächste Seite vorladen.
Wenn ich nun einfach die Bilder vorlade
var img_array = new Array();
img_array[0] = new Image();
img_array[0].src = "input.png";
img_array[1] = new Image();
img_array[1].src = "input_disabled.png";
img_array[2] = new Image();
img_array[2].src = "postit.png";
img_array[3] = new Image();
img_array[3].src = "txt.png";
und danach weiterleite
location.href="test.html"
wird ja einfach jeder Funktionsaufruf gestartet und abgearbeitet, das heisst, die weiterleitung erfolgt möglicherweise, bzw. höchstwahrscheinlich vor dem vorladen. Gibt es eine möglichkeit dies zu umgehen?
Grüsse von Justus
Hallo,
Ich möchte gerne einige Bilder in den Cache vorladen und erst wenn dieser Vorgang abgeschlossen ist auf die nächste Seite vorladen.
Wenn ich nun einfach die Bilder vorlade
und danach weiterleite
location.href="test.html"wird ja einfach jeder Funktionsaufruf gestartet und abgearbeitet, das heisst, die weiterleitung erfolgt möglicherweise, bzw. höchstwahrscheinlich vor dem vorladen. Gibt es eine möglichkeit dies zu umgehen?
als Idee:
window.onlad = function(){
window.location.href="test.html"
}
Grüße
Thomas
Hallo Thomas.
Ich möchte gerne einige Bilder in den Cache vorladen und erst wenn dieser Vorgang abgeschlossen ist auf die nächste Seite vorladen.
Wenn ich nun einfach die Bilder vorlade
und danach weiterleite
location.href="test.html"wird ja einfach jeder Funktionsaufruf gestartet und abgearbeitet, das heisst, die weiterleitung erfolgt möglicherweise, bzw. höchstwahrscheinlich vor dem vorladen. Gibt es eine möglichkeit dies zu umgehen?
als Idee:
window.onlad = function(){
window.location.href="test.html"
}
Alternativ könnte man es auch mit der onload-Eigenschaft des letzten Image-Objektes im Array versuchen:
img_array[3].onload = function() {
window.location.href='test.html';
};
Einen schönen Montag noch.
Gruß, Mathias
window.onlad = function(){
window.location.href="test.html"
}Alternativ könnte man es auch mit der onload-Eigenschaft des letzten Image-Objektes im Array versuchen:
img_array[3].onload = function() {
window.location.href='test.html';
};
Hallo, sowohl beim einten wie auch beim anderen tut sich nichts. muss ich den
~~~javascript
img_array[3].onload = function() {
window.location.href='test.html';
};
~~~ vor der src zuweisung machen denke ich?
Hallo Justus.
Hallo, sowohl beim einten wie auch beim anderen tut sich nichts. muss ich den
img_array[3].onload = function() {
window.location.href='test.html';
};
Was ergab dein Versuch?
Einen schönen Montag noch.
Gruß, Mathias
--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules
Hallo Justus.
Hallo, sowohl beim einten wie auch beim anderen tut sich nichts. muss ich den
img_array[3].onload = function() {
window.location.href='test.html';
};
>
> Was ergab dein Versuch?
>
>
> Einen schönen Montag noch.
>
> Gruß, Mathias
>
Hi,
Gar nichts, er leitet einfach nicht weiter
Hallo,
Gar nichts, er leitet einfach nicht weiter
Dann machst du definitiv etwas falsch, siehe https://forum.selfhtml.org/?t=145577&m=944872
Grüße
Thomas
Hallo,
... finde das Thema auch interessant.
img_array[3].onload = function() {
...
}; vor der src zuweisung machen denke ich?
Habe auch mal lokal getestet, und zumindest der IE scheint so schnell zu sein, dass der Eventhandler hinter der src-Anweisung nicht mehr berücksichtigt wird.
hier habe ich mal ein Beispiel mit 3 Dateien, wovon ein Bild nicht existiert. Der Dateizähler scheint keinen Unterschied zu machen.
Wahrscheinlich das gleiche Problem wie mit image.complete
<script type="text/javascript">
function i_err() {
alert("Bild-Lade-Fehler\n"+this.src);
}
iz=0;
window.onload=function() {
alert("Window geladen, " +iz+" Bilder");
}
namen="bild1.gif,bild2.gif,bild3x.gif".split(",");
img=new Array();
for (var i=0;i<namen.length;i++) {
img[i]=new Image();
img[i].onload=function(){iz++;}
img[i].onerror=i_err;
img[i].src=namen[i];
}
</script>
Gruß plan_B
Hallo,
Wahrscheinlich das gleiche Problem wie mit image.complete
... wollte mit diesem Beispiel zeigen, dass verschiedene Browser bei image.onload unterschiedliche Ergebnisse liefern.
http://de.selfhtml.org/javascript/objekte/images.htm#complete
Während dort im "beachten:" zu lesen ist, Opera folgt der IE-Definition, macht's meine Opera 8.6 Version nach der Netscape-Definition.
Ob ein Bild wirklich vorhanden ist, lässt sich dann nur prüfen, indem man z.b. width und height , oder zusätzlich onerror abfragt.
bezogen auf das Beispiel:
img_arr[3].onload=function(){ location.href="test.html"; }
würde der IE nur bei vorhandenem Bild weiterleiten.
Gruß plan_B
Hallo,
Hallo, sowohl beim einten wie auch beim anderen tut sich nichts.
Das ist nicht wirklich eine gute Fehlerbeschreibung.
http://meta-text.net/test/bildervorladen.html
Wenn man vor der laden der Seite den Cache leert und dann die Weiterleitung abbricht und dann wieder den Cache anschaut, sind die bilder drinn. (kanns du beim FF mit about:cache?device=disk nachprüfen.
Grüße
Thomas
hi,
Alternativ könnte man es auch mit der onload-Eigenschaft des letzten Image-Objektes im Array versuchen
Wir sollten nicht unbedingt davon ausgehen, dass sie "chronologisch" geladen werden.
Und selbst, wenn der Browser die Requests "der Reihe nach" abfeuert, sagt uns das noch lange nichts darüber, wann sie "fertig" sein werden - unterschiedliche Bildgrößen, etc.
gruß,
wahsaga