Ladezeit für Grafiken - JS noch nicht bereit
juewi
- javascript
0 Struppi
0 Hans Wurst0 molily
Hallo!
Ich geb als erstes mal hier ein großes Danke an alle, die in Bezug auf JS + CSS mir bei der Erstellung/Umgestaltung meiner HP www.juergen-wiedner.at großartig mitgeholfen haben!
Die Seite läuft und sieht so aus, wie ich mir das vorgestellt habe - der große Layout-Künstler bin ich nicht, egal, klein aber mein.
Es ist zwar keine große Sache und betrifft auch nur die Schnellklicker unter den HP-Besuchern aber mich interessiert es auch generell:
für jede Galeriekategorie (Hochzeit etc.) werden bei Seitenaufruf vom Script galerie.js die Thumbnails und die dazugehörigen URLs geladen damit die dort liegenden Fotos dann mit gleichem Script durch Klick auf ein Thumbnail oder die Pfeile in der Fussleiste angezeigt. Funktioniert bestens ausser man klickt zu schnell auf ein Thumbnail bevor noch alles eingelesen ist dann ist das Script noch mit Laden beschäftigt und das Foto wird in einer neuen Seite geöffnet - was eigentlich nur bei deaktivierten JS sein soll.
Wie gesagt, betrifft nur die Schnellklicker aber wenn ich viele Fotos so wie hier habe oder jmd. eine sehr langsame Verbindung hat dann könnten die ersten Klicks "ins leere" gehen.
Wie könnte ich sowas lösen? Entweder per JS (zB 2-sekündige Anzeige einer "Bitte-warten"-Grafik bevor das 1. Bild angezeigt wird) oder ... ?
Danke euch!
LG, Jürgen
Wie gesagt, betrifft nur die Schnellklicker aber wenn ich viele Fotos so wie hier habe oder jmd. eine sehr langsame Verbindung hat dann könnten die ersten Klicks "ins leere" gehen.
Wie könnte ich sowas lösen? Entweder per JS (zB 2-sekündige Anzeige einer "Bitte-warten"-Grafik bevor das 1. Bild angezeigt wird) oder ... ?
Am einfachsten vermutlich (ich hab jetzt nicht nachgeguckt) in dem du die galerie.js vor dem schliessenden <body> einbindest und dann nicht onload das Skript startest.
Struppi.
Ich stelle mir das so vor:
isLoad = false;
function ladeBild() {
if(!isLoad) {
isLoad = true;
}
else {
alert("Ne, noch am laden");
return;
}
... code ...
isLoad = false;
}
Bei Aufruf der Funktion wird die globale Variable "isLoad" auf TRUE gesetzt (Standardmässig: FALSE), und erst am Ende der Funktion wieder auf FALSE.
Wenn ein "Schnellklicker" [wie ich eiener bin ;)] nun die Funktion noch einmal klickt, bekommt er eine Meldung und die Funktion wird verlassen, weil "istLoad" auf TRUE steht!
Ich weiß nicht genau obs dir was bringt, ist aber schnell Umgesetzt!
Funktioniert bestens ausser man klickt zu schnell auf ein Thumbnail bevor noch alles eingelesen ist dann ist das Script noch mit Laden beschäftigt und das Foto wird in einer neuen Seite geöffnet - was eigentlich nur bei deaktivierten JS sein soll.
Langfristig solltest du dich von window.onload verabschieden.
Onload-Techniken – Scripte ausführen, sobald das Dokument verfügbar ist
Mathias