[JS?] Verzögerung beim Laden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JS?] Verzögerung beim Laden

    Hallo,

    um ein Script möglichst ansehlich zu realisieren, bräuchte ich folgendes:

    Normalerweise leitet ja der Browser bei einer META-Weiterleitung sofort weiter (was ja auch der Sinn ist). Dadurch sieht man eine gewisse Zeit lang "nichts" von der kommenden Seite, da diese ja noch geladen werden muss.

    Wäre es aber möglich, so etwas wie ein Fader oder eine Verzögerung einzubauen, sodass erst weitergeleitet wird, wenn die kommende Seite bereits fertiggeladen ist und so augenblicklich angezeigt werden kann. Dass also während der Ladezeit der nächsten Seite noch immer die alte angezeigt wird, sodass der Uebergang flüssiger ist?

    Es handelt sich um eine sehr kleine Seite, die nur aus dem nötigsten HTML besteht plus noch einem etwa 400*400 Pixel grossem Bild (PNG), das dynamisch erzeugt wird.

    Bin für jede Hilfe dankbar...

    MfG, rob

  • #2
    Re: [JS?] Verzögerung beim Laden

    Original geschrieben von roobin
    Normalerweise leitet ja der Browser bei einer META-Weiterleitung sofort weiter (was ja auch der Sinn ist). Dadurch sieht man eine gewisse Zeit lang "nichts" von der kommenden Seite, da diese ja noch geladen werden muss.
    "er leitet weiter" ist falsch formuliert.

    er fängt dann auf grund der angabe im meta-tag an, eine neue ressource vom server anzufordern.
    diese "siehst" du dann, wenn sie fertig übertragen und gerendert wurde.

    Wäre es aber möglich, so etwas wie ein Fader oder eine Verzögerung einzubauen, sodass erst weitergeleitet wird, wenn die kommende Seite bereits fertiggeladen ist und so augenblicklich angezeigt werden kann.
    wie oben gesagt -> schon vom konzept her unmöglich, weil der browser nichts "weiterleitet", sondern anfordert.

    Es handelt sich um eine sehr kleine Seite, die nur aus dem nötigsten HTML besteht plus noch einem etwa 400*400 Pixel grossem Bild (PNG), das dynamisch erzeugt wird.
    du könntest natürlich einen unsichtbaren (i)frame benutzen, um die seite dort vorzuladen.
    wenn dann für die hauptseite nach x sekunden der befehl zur "weiterleitung" kommt, kann der browser die seite dann ggf. schon aus dem cache holen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      grundsätzlich halte ich persönlich aber nichts von einer künstlichen verzögerung. das ist ja, mit verlaub gesagt, nur kinderka**e.
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Da hast Du natürlich Recht. Aber es handelt sich hier um keine "herkömmliche" Website, sondern mehr etwas "Wissenschaftliches". Auf jeden Fall sollte ein möglichst flüssiger Ablauf entstehen, sodass es ähnlich wie einer Diashow aussieht.

        @wahsaga: Aber ist es denn nicht durch irgendeinen bestimmten Befehl in JavaScript oder ähnlichem (ich kenne mich da leider überhaupt nicht aus...) möglich, dass die neue Seite erst dann gezeigt wird, wenn sie fertig geladen ist.

        Gewisse Fader machen doch etwas ähnliches - nur wäre es perfekt, wenn es kein eigentlicher Fader wäre, sondern einfach nur eine Verzögerung.

        Vielen Dank für eure Antworten!

        MfG, rob

        Kommentar


        • #5
          hmm, ginge es vielleicht so rum:
          Da die Seite, an die weitergeleitet wird, immer die gleiche ist, könnte man ja eigentlich auch einfach bei dieser Seite eine Verzögerung einbauen, nicht?
          Gibt es keine Befehle, die erreichen, dass solange die alte Seite angezeigt wird, bis die neue geladen ist?

          Kommentar


          • #6
            hiermit kannst Du vorladen:

            <script
            language="javascript">
            <!--
            function initArray() {
            for (var i = 0; i < initArray.arguments.length; i++)
            this[i] = initArray.arguments[i];
            this.length = initArray.arguments.length;
            }
            var pics = new initArray(
            "bilder/laden/klein/laden1.jpg",
            "bilder/laden/klein/laden2.jpg",
            "bilder/laden/klein/laden3.jpg",
            "bilder/laden/klein/laden4.jpg",
            "bilder/laden/klein/laden5.jpg",
            "bilder/laden/klein/laden6.jpg",
            "bilder/laden/klein/laden7.jpg",
            "bilder/laden/klein/laden8.jpg",
            "bilder/laden/klein/laden9.jpg",
            "bilder/laden/klein/laden10.jpg",
            "bilder/laden/klein/laden11.jpg",
            "bilder/laden/klein/laden12.jpg",
            "bilder/laden/klein/laden13.jpg",
            "bilder/laden/klein/laden14.jpg",
            "bilder/laden/klein/laden15.jpg");

            var transfer_url = "index.php?site=house&tabelle=house&aktion=show"; // URL of second page goes here

            function transfer(param) {
            if (vers>1.0)
            location.replace(transfer_url);
            else
            location.href = transfer_url;
            }

            function done() {
            if (vers < 1.1)
            transfer();
            else
            commence_loading();
            }

            function commence_loading() {
            for (g=0;g<pics.length;g++)
            eval('document.preload'+g+'.src = "'+pics[g]+'";');
            }

            // preload the status bar images
            if (vers >= 1.1) {
            blue = new Image();
            blue.src = "images/blue.gif";
            black = new Image();
            black.src = "images/black.gif";
            }

            var loaded = new Object();
            for (h=0;h<pics.length;h++)
            loaded[h] = 0;
            num_loaded = 0;

            function update(num) {
            loaded[num]++;
            if (loaded[num] == 2) {
            eval('document.status'+num_loaded+'.src = "images/blue.gif";');
            num_loaded++;
            if (num_loaded == pics.length)
            transfer();
            }
            }
            // -->
            </script>
            </head>

            <body onLoad="done()">

            <p align="center"><br>
            <font color="#FFFFFF">Einen Moment Geduld - Seite wird<br>
            Geladen.</font><br>
            <br>
            <script language="JavaScript">
            <!--
            if (vers < 1.1) {
            document.write('Ihr Browser unterstützt diese Funktion nicht.<br>'
            + 'Benötigt wird ein Browser ab Version 3.x');
            for (j=0;j<pics.length;j++) {
            document.write('<img src="'+pics[j]+'" width=1 height=1>');
            }
            } else {
            document.write('<table><tr><td><b>status:</b> '
            + '<img src="images/blue.gif" width=15 height=10>');
            for (k=0;k<pics.length;k++)
            document.write('<img src="images/black.gif" width=30 height=10 name="status'+k+'">');
            document.write('</td></tr></table><br>'
            + '<a href="'+transfer_url+'">Ich kann nicht warten</a>');
            for (j=0;j<pics.length;j++) {
            document.write('<img src="images/black.gif" width=1 height=1 '
            + 'onLoad="update('+j+')" name="preload'+j+'">');
            }
            }
            // -->
            </script>
            Mit freundlichen Grüßen
            Werner

            Kommentar


            • #7
              Original geschrieben von roobin
              Gibt es keine Befehle, die erreichen, dass solange die alte Seite angezeigt wird, bis die neue geladen ist?
              n-e-i-n.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                naja, dann finde ich mich halt damit ab

                Danke euch allen...

                Kommentar

                Lädt...
                X