[Web] Bilder zuerst komplett laden, dann anzeigen

Zweipunktnull

Commander
Registriert
Dez. 2004
Beiträge
2.546
Hallo!

Normalerweise ist es ja so, dass Bilder stück für stück im Browser aufgebaut werden bzw. bei interlaced bildern stück für stück im browser schärfer werden. Ist es möglich, dass Bilder zuerst komplett geladen werden und dann erst angezeigt?
also das wärend des ladevorgangs nichts zu sehen ist und das bild iwann "mit einem schlag" fertig erscheint. bitte ohne js.

Hintergrund: Ein Diashow Skript. bei klick auf ein bild wird der bildschirm mittels eines schwarz-transparenten fixed div abgedunkelt und eine GIF lade animation läuft in der mitte des bildschirms. sieht soweit wirklich ganz gut aus. das dumme ist nun nur, dass das bild "nach und nach" aufgebaut wird und somit langsam die ladeanimation verdeckt. das ist eher suboptimal. wie kann ich dem browser beibringen das bild erst dann anzuzeigen, wenn er es schon fertig geladen hat?

wie gesagt bitte kein js. viele ähnliche skripte verwenden js. meins beruht nur auf php. da fühl ich mich wohler bei. bei js weiß man nie wer oder wie viele es an bzw. aus haben...
 
ganz einfach: die bilder die geladen sind sind ja im cache des browsers und werden nachher nicht mehr abgerufen:

mach einfach wenn du in ner diashow bist das nächste bild auch schon rein, aber mit abmessungen 0x0 pixel, dann wirds trotzdem geladen auch wenn mans nicht sieht.
 
hm.. wäre zumindest besser als es im mom ist, aber auch nich ganz so optimal...
schließlich ist's nicht gesagt, dass er benutzer die bilder immer nach einander aufruft.

zu beginn sieht man eine seite mit allen bildern. bei klick auf n bild wird wie gesagt die seite verdunkelt und das bild angezeigt, zusammen mit einen zurück, weiter und schließen button. beim schließen button kommt der benutzer zurück zur seite mit allen bildern. deswegen ist ja nicht gesagt, dass er die bilder "in der richtigen reihenfolge" sich anschaut.

ich hab bereits befürchtet das es keinen HTML-attribut gibt, was dem browser sagt, er solle bitteschön erst laden und dann zeigen.. damit lag ich offenbar leider richtig?

gibts noch andere lösungsansätze? oder muss ich nun wohl oder übel doch js zur hilfe nehmen?

(Edit: Mal nebenbei, hat jemand gute und aktuelle statistiken zu dem thema? die schwanken zum teil nähmlich sehr. aber am besten sind ja diese statistiken, in denen nur user erfasst werden, die js aktiviert haben und als auswertung kommt dann raus: 100% aktiviert, 0 % deaktivert :rolleyes: )
 
Zuletzt bearbeitet:
so nebenbei: aber wenn du beim bild den eventhandler "onclick" verwendest, um die seite zu verdunkeln, ist das schon js ;)
 
ähm.. hätte mal ne frage die zum thema passt:
Wie mache ichs denn MIT javascript, dass ein bild erst dann angezeigt wird, wenns fertig geladen ist?
 
Also ich wollt's wie gesagt nicht mit dem Event-Handler onclick machen.
Ich wollt's mit GET-Variablen machen.

.php würde zur "Basisseite" führen.
auf dieser seite wären die bilder mit links der form: basisseite.php?image=x

.php?image=x würde bewirken, dass die Basisseite nochmals geladen wird plus das halb-transparente div plus das Bild.

vorteil: würde auch ohne js funktionieren.
nachteile: naja, ich mach mir ein bisschen sorgen, dass das ganze wegen meiner js fobie ein bisschen zuviel von hinten durch die brust ins auge geschossen ist.. zum einen müsste bei jedem bild die "seite im hintergrund" ebenfalls neugeladen werden, zum anderen wär der code natürlich aufgeblasen. denn ich müsste die basisseite ja immer mit php öffnen und dann noch den code für div+bild reinschreiben.
was meinen hier die profis? wär das wie gesagt zu sehr von hinten durch die brust ins auge geschossen? oder sind die nachteile vertretbar dafür das es auch ohne js funktioniert? hab halt leider keine ahnung, wie oft js wirklich deaktiviert ist. hab mal gelesen, dass es mehr netscape4-user gibt, als js-deaktiviert-user. aber ne andere statistik sagt dann direkt wieder, dass 10 % js aushaben...
 
mein tipp an dich: machs mit js und programmier es so, dass man die seite auch ohne js bedienen kann. sprich dass wenn man js hat, das ganze schön vorgeladen wird, wenn mans nicht hat, man halt den seitenaufbau mitansehen muss.

wenn man kein js aktiviert => selbst schuld. kann ja nix grossartiges passieren und in nem einigermassen aktuellen browser kann man lästige dinge wie popups oder window-resize oder statusleistenscheisse abschalten und das restliche javascript drinlassen.
 
dann jetzt aber nochmal eine andere frage

wenn sich die thumbnails aufbauen, dann sieht man ja immer schon so einen rahmen mit so einer kleinen grafik in der linken oberen ecke, die einem signalisieren soll, dass da noch ein bild hingehört. das sieht natürlich auch net so dolle aus. wie bekomme ich diesen rahmen weg? border: none funktioniert nicht. aber mit irgendwas muss er weggehen, da ich schon einige websites gesehen hab, bei denen während dem laden kein rahmen angezeigt wurde..

edit: ahh... weglassen der width und height angabe bewirkt das. habs eben schonma so probiert, da gings noch net. ich vergess voll oft den cache zu löschen :rolleyes: nun ja, da das keine pflichtattribute sind, raus damit.
 
Zuletzt bearbeitet:
Zurück
Oben