Hannes: Funktionsaufruf

Hallo,

also ich habe eine Seite die soll während eine js-funktion ausgeführt wird schon ein bild anzeigen.

Die js funktion dauert eine weile und wird onload im body aufgerufen.
Am ende der Funktion wird direkt zu einer andere Seite weitergeleitet.

Das Problem ist das so während der Funktionsausführung nichts zu sehen ist, weil ja der body erst nach Vollendung der Funktion ausgeführt wird.

Habe schon überlegt die Funktion automatisch irgendwie im body auszuführen habe aber nichts passendes gefunden.

  1. Bau in deine Seite irgendwo da ein:

    <script type="text/javascript">

    funktions_aufruf();

    </script>

    Struppi.

    1. Also das schon ne gute idee die hatte ich auch schon aber irgendwie funktioniert das nicht die datei heißt
      load.php

      <?
      session_start();
      ?>
      <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
      <html>
      <head>
      <title></title>
      <script language="JavaScript">
      <!--
       function load()
       {
          image9 = new Image();
          image9.src = "img/header/header4.jpg";
          image10 = new Image();
          image10.src = "img/header/header1.jpg";
          image11 = new Image();
          image11.src = "img/header/header13.jpg";
          image12 = new Image();
          image12.src ="img/header/header3.jpg";
      location.replace("main.php?login=<?=$login?>&PHPSESSID=<?=$PHPSESSID?>");
          }
      //-->
      </script>
      <noscript></noscript>
      </head>
      <body>
      <img src="img/load.gif" width="75" height="29" border="0" alt="">
      </body>
      <script language="JavaScript">
      <!--
      load();
      //-->
      </script>
      <noscript></noscript>
      </html>

      1. Also das schon ne gute idee die hatte ich auch schon aber irgendwie funktioniert das nicht die datei heißt

        Funktionier nicht, ist keine besonders aussagekräftige Fehlerbeschreibung.

        <script language="JavaScript">
        <!--
         function load()
         {
            image9 = new Image();
            image9.src = "img/header/header4.jpg";
            image10 = new Image();
            image10.src = "img/header/header1.jpg";
            image11 = new Image();
            image11.src = "img/header/header13.jpg";
            image12 = new Image();
            image12.src ="img/header/header3.jpg";
        location.replace("main.php?login=<?=$login?>&PHPSESSID=<?=$PHPSESSID?>");
            }

        Da soll wohl ein 'preload' skript sein. Sowas ist überflüssig und dem User gegenüber nicht besonders freundlich, etwas zu laden ohne das er es unmittelbar merkt.

        (Mal abgesehen, dass das hier nicht mal funktioniert.)

        Struppi.

        1. das vorladen funktioniert einwandtfrei und ist für die darstellung unabdingbar....
          was nicht funktioniert ist das das preloader-bild einfach nicht erscheint...es wird geladen aber das bild wird nicht angezeigt obwohl ich den funtionsaufruf nach meinem body sogar habe.
          also bilder werden vorgeladen und es wird auch weitergeleitet...es ist quasi nur ein schönheitsfehler

          1. das vorladen funktioniert einwandtfrei und ist für die darstellung unabdingbar....

            Das glaube ich nicht.
            Einmal ist vorladen bescheuert, da es durchaus üblich ist und auch dem Besucher zu zumuten, im Internet einige Augenblicke zu warten bis die Seite fertig aufgebaut ist. Daneben haben die Browser selbst ein ausgefeiltes Cache Management, dass vermutlich dich zu der Annahme hinreissen läßt, dein Preloader würde funktionieren.

            In dem Moment, wo er funktionieren sollen, bricht er schon wieder ab, da du ja auf eine neue Seite gehst, aber wie gesagt, dein Browser macht das besser als du.

            was nicht funktioniert ist das das preloader-bild einfach nicht erscheint...es wird geladen aber das bild wird nicht angezeigt obwohl ich den funtionsaufruf nach meinem body sogar habe.

            Wieso und wo soll es erscheinen?

            also bilder werden vorgeladen und es wird auch weitergeleitet...es ist quasi nur ein schönheitsfehler

            Die Bilder werden nicht vorgeladen und Surfer die ohne Javascript surfen (wie ich z.b.) sehen nichts von deiner Seite. Du hast da ein klassisches  Beispiel von einem nutzlosen JS, die sich leider immer mehr verbreiten.

            Struppi.

            1. Man du scheinst ja echt gefrustet zu sein.
              Wozu ich das Brauch ob fürne Homepage oder für ein kleines Spiel oder sonstwas, das soll hier nicht ausschlaggebend sein.
              Und glaube mir es ist notwendig und wer kein JS aktiviert hat kann die Seite halt nicht benutzen.
              siehe: Flash
              Das bleibt ja immerhin noch mir überlassen.

              Tja und wenn du meinst das dein Browser das komplette Verzeichnis auf dem Server nach Bildern durchsucht und die zwischenspeichert um dir z.B. einen reibungslosen Rollover zu garantieren dann irrst DU dich.

              1. Man du scheinst ja echt gefrustet zu sein.

                In Bezug auf nutzlose Skripte auf jeden Fall.

                Wozu ich das Brauch ob fürne Homepage oder für ein kleines Spiel oder sonstwas, das soll hier nicht ausschlaggebend sein.
                Und glaube mir es ist notwendig und wer kein JS aktiviert hat kann die Seite halt nicht benutzen.

                Nein, ich glaub dir nicht das es notwendig ist. Wenn es um rollover Grafiken geht, kannst du die ohne Probleme in der Seite vorladen in der sie sind. Aber nicht mit einem nutzlosen Skript, das das vorladen abricht, wie deins.

                siehe: Flash
                Das bleibt ja immerhin noch mir überlassen.

                Und was hat miteinander zu tun?

                Tja und wenn du meinst das dein Browser das komplette Verzeichnis auf dem Server nach Bildern durchsucht und die zwischenspeichert um dir z.B. einen reibungslosen Rollover zu garantieren dann irrst DU dich.

                ???
                Hab ich das behauptet?
                Ich benutze auch Rollover Buttons und diese werden auch vorgeladen, aber nicht auf irgendeiner Seite, sondern, der wo sie sind.

                aber du WILLST ja recht haben und ich glaube nicht das du für irgendwelche Argumente zugänglich bist.

                EOT

  2. Hallo,

    wenn Du das Script mit "onload" aufrufst, sollte es erst gestartet werden, wenn die Seite fertig geladen ist. Aber ich habe auch die Erfahrung gemacht, dass der Browser die Seite nicht zeigt, wenn er ein CPU-auslastendes Script abarbeitet. Das Script ans Ende der Seite zu setzen, hilft auch nicht. (Test mit IE6). Mein Vorschlag: Rufe eine Seite mit dem Bild auf und schalte automatisch auf die Seite mit dem Script weiter, vieleicht klappt das ja.

    Gruß,     Jürgen