carsten schlichting: preload images

Hallo

wollte fragen, ob mir jemand bei meinen JavaScript_Verständnisschwierigkeiten helfen kann?

und zwar habe ich auf dem server lauter Bilddateien, mit einer ähnlichen Bezeichnung:

bild_X_X_X

In diesen bildern möchte ich mit navigationsschaltflächen navigieren.

dabei wird mit Hilfe von funktionen der name des bestehenden bildes ausgelesen und ein nächstes Bild bestimmt, das dann gezeigt werden soll.

Außerdem sollen beim einspielen des nächsten Bildes neue Bilder preloaded werden.

ich weiß nicht, ob ich genau verstanden habe , wie javascript denkt?

Was tut z. B. der befehl : preloadImage.arguments[1]...[2]..usw. ?

habe folgende befehlszeile herausgesucht:
(new image()).src=preloadimages.arguments[i]

Wie denkt javascript hier ?

Könnt Ihr mir ein wenig weiterhelfen ,wie ich den befehl preload einsetzen muß??

carsten

  1. hi,

    ich weiß nicht, ob ich genau verstanden habe , wie javascript denkt?

    Was tut z. B. der befehl : preloadImage.arguments[1]...[2]..usw. ?

    das ist kein objekt aus dem standard-sprachumfang von dem, was wir und die browser als javascript kennen - es muss also irgendwo im scriptcode erst mal definiert werden, aus dem du das hast.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hallo wahsaga

      das ist kein objekt aus dem standard-sprachumfang von dem, was wir und die browser als javascript kennen - es muss also irgendwo im scriptcode erst mal definiert werden, aus dem du das hast.

      Du hast  recht.
       hier ist das ganze script:

      function preloadImages() {
         if (document.images) {
            for (var i = 0; i < preloadImages.arguments.length; i++) {
               (new Image()).src = preloadImages.arguments[i];
            }
         }
      }

      preloadImages ist also der Name einer Funktion.

      sind mit preload.arguments die werte geneint, mit der die funktion aufgerfufen wurde. z. B:

      onClick="preloadImages(Bild1.gif,Bild2.gif, Bild3.gif"

      habe auch rollover Bilder mit javascript nach eurer docu in meine seite eingebaut.

      dort müssen diese Bilder im header definiert werden;Mit:

      bild1=new Image ();
      bild1.src="images/bild1.gif";...usw.

      werden diese bilder in diesem Falle auch gleichzeitig hochgeladen?

      Wie arbeitet eigentlich javaScript im Allgemeinen in einer Seite. Wie PHP grundlegend funktioniert habe ich denke verstanden. aber bei Javascript ist mir das noch unklar. kann man sich die zusammenarbeit von JS und HTML irgendwie vorstellen?

      grüße von mir carsten

      1. hi,

        sind mit preload.arguments die werte geneint, mit der die funktion aufgerfufen wurde. z. B:
        onClick="preloadImages(Bild1.gif,Bild2.gif, Bild3.gif"

        ja, genau.
        näheres dazu findest du unter http://de.selfhtml.org/javascript/objekte/function.htm

        bild1=new Image ();
        bild1.src="images/bild1.gif";...usw.
        werden diese bilder in diesem Falle auch gleichzeitig hochgeladen?

        hochgeladen? nein, runtergeladen, in den cache des clients.

        jedes so erzeugte Image-objekt veranlasst den browser, eine grafik vom server anzufordern (sofern nicht schon im cache vorhanden).
        wie viele davon er aber "gleichzeitig" anfordert, anfordern kann, hängt von diversen parametern ab - u.a. wie viele parallele requests im browser eingestellt sind, und wie viele verbindungen der server zulässt.

        Wie arbeitet eigentlich javaScript im Allgemeinen in einer Seite.

        es ändert eigenschaften vorhandener HTML-elemente, oder erzeugte neue, oder ruft methoden vorhandener JS-objekte auf.

        kann man sich die zusammenarbeit von JS und HTML irgendwie vorstellen?

        hm, mir ist nicht ganz klar, wie diese frage gemeint ist.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hi

          bild1=new Image ();
          bild1.src="images/bild1.gif";...usw.
          werden diese bilder in diesem Falle auch gleichzeitig hochgeladen?

          hochgeladen? nein, runtergeladen, in den cache des clients.

          alle Bilder, die ich so definiert habe, sind also definitiv  runtergeladen und nicht nur definiert.Das preload ist also schon geschehen.

          kann man sich die zusammenarbeit von JS und HTML irgendwie vorstellen?

          hm, mir ist nicht ganz klar, wie diese frage gemeint ist.

          die Frage ist einbißchen aus meiner hilflosigkeit entstanden, aber das hat mir ein bißchen weitergeholfen: -donke

          es ändert eigenschaften vorhandener HTML-elemente, oder erzeugte neue, oder ruft methoden vorhandener JS-objekte auf.

          sag mal kann ich dich um einen weiteren Gefallen bitten? und zwar mir folgende funktion in wörter zu formulieren, vielleicht hab ich dann den aha effekt.

          function preloadImages() {
             if (document.images) {
                for (var i = 0; i < preloadImages.arguments.length; i++) {
                   (new Image()).src = preloadImages.arguments[i];
                }
             }
          }

          Im Hinterkopf habe ich immer folgendes Beispiel:
          http://de.selfhtml.org/javascript/beispiele/buttons.htm

          Dort gibt es die Funktion:
          function Bildwechsel (Bildnr, Bildobjekt) {
            window.document.images[Bildnr].src = Bildobjekt.src;
          }

          Wie funktioniert hier denn jetzt die Bildnumerierung.
          entsteht die interne Bildnummerierung in der definition im header, oder beim tatsächlichen einfügen der Bilder im HTML. Hier mein ich nämlich beobachtet zu haben, das die Bilder erst gezählt werden, wenn sie im HTML ausgegeben werden.???? Und die dateien werden hier wirklich definitiv bei der definition schon runtergeladen und nicht erst bei der Ausgabe im HTML-code?

          grüße von mir

          carsten

          1. hallo nochmal

            anscheinend ist es wirklich so, wenn die Bilder definiert sind, dass diese dann auch in den arbeitsspeicher des Browsers runtergeladen werden.

            bild1=new Image ();
            bild1.src="images/bild1.gif";...usw.
            werden diese bilder in diesem Falle auch gleichzeitig hochgeladen?

            hochgeladen? nein, runtergeladen, in den cache des clients.

            meine zweifel kamen einfach wegen der Nummerierung

            Wie funktioniert hier denn jetzt die Bildnumerierung.
            entsteht die interne Bildnummerierung in der definition im header, oder beim tatsächlichen einfügen der Bilder im HTML. Hier mein ich nämlich beobachtet zu haben, das die Bilder erst gezählt werden, wenn sie im HTML ausgegeben werden.????

            Die Nummerierung ist aber von der ausgabe abhängig oder?

            grüße carsten

            1. hi,

              anscheinend ist es wirklich so, wenn die Bilder definiert sind, dass diese dann auch in den arbeitsspeicher des Browsers runtergeladen werden.

              jein. nicht unbedingt in den arbeitsspeicher, vermutlich eher erst mal in den cache.

              Wie funktioniert hier denn jetzt die Bildnumerierung.
              entsteht die interne Bildnummerierung in der definition im header, oder beim tatsächlichen einfügen der Bilder im HTML. Hier mein ich nämlich beobachtet zu haben, das die Bilder erst gezählt werden, wenn sie im HTML ausgegeben werden.????

              Die Nummerierung ist aber von der ausgabe abhängig oder?

              du beziehst dich vermutlich auf document.images - diese collection ermöglicht dir zugriff auf alle im HTML-dokument befindlichen bilder.

              verwechsle dies bitte nicht mit dem objektaufruf new Image() - dieses dient zum erzeugen eines neuen bildobjektes _in javascript_.
              ein so erzeugtes bild ist aber nicht automatisch im HTML-dokument vorhanden - das sind nur die per <img> eingebundenen bilder - noch bekommt es eine nummer innerhalb der collection document.images.
              das sind zwei verschiedene paar schuhe.

              gruß,
              wahsaga

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. weiß jemand zufällig in diesem zusammenhang von einem JS-script, das die IE Filter steuern kann. Möchte Bilder überblenden lassen und hab bisher noch nicht viel gefunden.

        carsten

        1. weiß jemand zufällig in diesem zusammenhang von einem JS-script, das die IE Filter steuern kann. Möchte Bilder überblenden lassen und hab bisher noch nicht viel gefunden.

          hab doch was gefunden:

          http://de.selfhtml.org/dhtml/modelle/dynamische_filter.htm#blend_trans

          grüße carsten