SSTnotLSD: Preload...???

Hallo Leute,

ein vielleicht schon überstrapaziertes Thema, damit konnte ich bisher auch ganz gut Leben, aber jetzt würde mich einfach schon mal interesssieren wie der PreLoad von Bildern so funktioniert , dass das HTML-Gerüst der Seite erst angezeigt wird, wenn alle Bilder geladen worden sind, wirklich alle... Okay hier mein bisheriger Standardcode, vielleicht kann mir jemand den finalen Trick verraten.

function preLoad(){
                if(document.images){
                image1 = new Image;
                image1.src = "../bilder/m_links.gif";
                image2 = new Image;
                image2.src = "../bilder/m_mitte_oben.gif";
                image3 = new Image;
                image3.src = "../bilder/m_mitte.jpg";
               etc.
                } else {return;}
}

etc.

<body bgcolor="#000000" text="#00ff00" onLoad="preLoad();">

Mit beste Grüssen und vielen Dank für etwaige
Antworten

cu

  1. function preLoad(){
                    if(document.images){
                    image1 = new Image;
                    image1.src = "../bilder/m_links.gif";
                    image2 = new Image;
                    image2.src = "../bilder/m_mitte_oben.gif";
                    image3 = new Image;
                    image3.src = "../bilder/m_mitte.jpg";
                   etc.
                    } else {return;}
    }

    etc.

    <body bgcolor="#000000" text="#00ff00" onLoad="preLoad();">

    Hallo , du solltest auf keinen fall die sache mit onLoad-Lösen. So werden die Bilder expliziet erst dann geladen wenn diene Seite komplett angezeigt worden ist !
    schreibe die new image funktion direckt in den rumpf des Javascriptes. Die bilder werden in der reihenfolge geladen in der die Image objekte vom browser angelegt werden. (also auch die im html code). aber auch durch diese änderung würde die seite immer noch angezeigt werden bevor alle bilder wirklich das sind. eine möglichkeit währe die images in einer tabelle anzulegen und von einem (dem letzten) die grössen angaben wegzulassen. dann kann der browser die tabelle erst aufbauen wenn alle daten komplett geladen sind. ich halte das aber für ein wenig unelegant . vielleicht gibt es bessere lösungen.

    Timo

    1. Hallo!

      »»  ich halte das aber für ein wenig unelegant . vielleicht gibt es bessere lösungen.

      Oh ja, sehr unelegant. Ich halte von der ganzen Idee sowieso nicht sehr viel, da ich lieber dem Seitenaufbau zuschaue als die ganze Zeit darauf zu warten, dass endlich mal irgendwas passiert. Aber naja, die einzige etwas elegantere Moeglichkeit waere vielleicht, den gesamten Body in eine(n) grosse(n) DIV/LAYER zu verpacken, die/der erstmal unsichtbar ist und dann mit BODY OnLoad sichbar gemacht wird. Aber wie gesagt, nicht schoen sowas.

      Bye by Calocybe

      1. Aber naja, die einzige etwas elegantere Moeglichkeit waere vielleicht, den gesamten Body in eine(n) grosse(n) DIV/LAYER zu verpacken, die/der erstmal unsichtbar ist und dann mit BODY OnLoad sichbar gemacht wird. Aber wie gesagt, nicht schoen sowas.

        Bye by Calocybe

        Hätte aber den Nachteil das man nur noch 4.0 Browser bedient. Ansonsten möchte ich mich deiner meinung voll anschliessen. Es gibt nicht dümmeres als minute für minute auf eine leere Seite zu starren.

  2. Hallo,

    Echt fundierte Tricks und Tips zu dem Thema findest
    Du bei Christine auf http://screenexa.net/.

    Das Preloadverfahren kannst Du auch so schreiben:

    im Scriptteil:

    Als Erstes eine eigentliche Ladefunktion mit Parameterübergabe.

    function BildLaden(BildName)
      {
       var a=new Image(); a.src=BildName; return a;
      };

    dann die aufrufe der obigen Funktion als Liste.

    MeinErstesBild = BildLaden('bild_1.gif');
      MeinZweitesBild = BildLaden('bild_2.gif');
       ...

    Das Referenzieren geht dann über Namen.

    function BildUmSchalten(BildBenennung,MeinBild)
      {
       if (...) (document[BildBenennung].src=eval(MeinBild + '.src');
      };

    und im BODY:

    <A HREF="sonstwo.htm"
        OnMouseOver="BildUmSchalten('MeinBild','MeinErstesBild');return true"
        OnMouseOut ="BildUmSchalten('MeinBild','MeinZweitesBild');return true">
        <IMG SRC="bild_1.gif" name="MeinBild" border="0"></A>

    Wenn ich mich nicht irgendwo vertippt habe.
    Diese Vorgehensweise ist etwas pflegeleichter als
    der Zugriff über Indices. Negative Nebeneffekte sind mir bislang nicht bekannt.

    Schön wäre es auch, im IMG-Tag auf die 'physikalische' Bezeichnung
    SRC="bild_1.gif" zu verzichten. Da ist mir aber noch nichts zu eingefallen.

    Vom 'unsichtbaren Laden' halte ich persönlich auch nicht viel.

    Klaus