Joerg Peschke: Diashow mit HTML-Dateien

Hallo,
Ich muss eine Diashow mit HTML-Dateien programmieren. Ich habe ein Frameset,
in dem in dem einen Frame ein Button zum weiterschalten ist der per Javascript
im anderen Frame(namens mainframe) die Dias (sprich verschiedene HTML-Seiten) weiterschaltet.
Da in der "Dia-HTML-Datei" recht viele Bilder drin sind, wollte ich mit
einem Javascript-Reload - Befehl (parent.mainframe.location.reload()) dafuer
sorgen, dass keine gecacheten Seiten genommen werden.
Leider werden auf diese Weise oefter Seiten uebersprungen (bzw. es wird das
gleiche Dia nochmal geladen)

Kann mir irgendjemand weiterhelfen, ich bin am Verzweifeln!!!

Auf die "Dias" hab ich leider keinen Einfluss, weil die automatisch von einem
Programm generiert werden, META-Refreshs o.ae. scheiden deshalb aus.

  1. Moin Joerg,

    so ganz habe ich dein Problem zwar nicht verstanden, aber kennst du das Beispiel "Bilderbuch zum Umblättern" (http://selfhtml.teamone.de/dhtml/beispiele/bilderbuch.htm) aus SelfHTML?

    Vielleicht hilft dir das ja schon weiter...

    Glück auf
    Dirk

    1. Moin Joerg,

      so ganz habe ich dein Problem zwar nicht verstanden, aber kennst du das Beispiel "Bilderbuch zum Umblättern" (http://selfhtml.teamone.de/dhtml/beispiele/bilderbuch.htm) aus SelfHTML?

      Vielleicht hilft dir das ja schon weiter...

      Glück auf
      Dirk

      Danke einstweilen fuer die Loesungen, allerdings werden ja hier immer
      Bilder ausgetauscht. Bei mir ginge es aber um den Austausch ganzer
      HTML-Dateien inc. der darin enthaltenen Bilder.

      Ich fuerchte aber fast, meine Probleme lassen sich gar nicht vermeiden,
      weil einfach zu unklar ist, wie Caching und Reloads bei verschiedenen
      Browsern und Webservern funktionieren

      1. N'abend, Joerg!

        Danke einstweilen fuer die Loesungen, allerdings werden ja hier immer
        Bilder ausgetauscht. Bei mir ginge es aber um den Austausch ganzer
        HTML-Dateien inc. der darin enthaltenen Bilder.

        Ich fuerchte aber fast, meine Probleme lassen sich gar nicht vermeiden,
        weil einfach zu unklar ist, wie Caching und Reloads bei verschiedenen
        Browsern und Webservern funktionieren

        Die Variante von flo ist doch schon ganz nett. Statt die Bilder zu tauschen, setzt du URLs in das Array ein und tauscht mit location.href (bzw. dem für das Frameset passenden href-Objekt) die URLs aus.

        PS: Warum löst du eigentlich das Reload aus? Gegen Bilder hilft das ohnehin nicht, und auch nicht gegen Caches und Proxys - ich kanns mir jedenfalls nicht vorstellen.

        - Sven Rautenberg

        1. N'abend, Joerg!

          Danke einstweilen fuer die Loesungen, allerdings werden ja hier immer
          Bilder ausgetauscht. Bei mir ginge es aber um den Austausch ganzer
          HTML-Dateien inc. der darin enthaltenen Bilder.

          Ich fuerchte aber fast, meine Probleme lassen sich gar nicht vermeiden,
          weil einfach zu unklar ist, wie Caching und Reloads bei verschiedenen
          Browsern und Webservern funktionieren

          Die Variante von flo ist doch schon ganz nett. Statt die Bilder zu tauschen, setzt du URLs in das Array ein und tauscht mit location.href (bzw. dem für das Frameset passenden href-Objekt) die URLs aus.

          PS: Warum löst du eigentlich das Reload aus? Gegen Bilder hilft das ohnehin nicht, und auch nicht gegen Caches und Proxys - ich kanns mir jedenfalls nicht vorstellen.

          • Sven Rautenberg

          Hallo,
          Ja, im Endeffekt hab ichs auch so gemacht (Array mit URLs, und dann eine
          Funktion, die bei jedem Knopfdruck eine Position weiter im Array schaltet, modulo
          der Anzahl der Seiten)

          Reloads helfen bei Bildern eh nichts, sagst Du? Na klasse :(

          1. Reloads helfen bei Bildern eh nichts, sagst Du? Na klasse :(

            Ich frage mich jedenfalls, welche Probleme du erlebst, die dich zum Reload veranlassen. Im Prinzip sollte ein Browser eine Seite ja vollständig laden. Wenn er dies nicht tut, liegt es an irgendwas - das herauszufinden wäre interessant.

            - Sven Rautenberg

            1. Reloads helfen bei Bildern eh nichts, sagst Du? Na klasse :(

              Ich frage mich jedenfalls, welche Probleme du erlebst, die dich zum Reload veranlassen. Im Prinzip sollte ein Browser eine Seite ja vollständig laden. Wenn er dies nicht tut, liegt es an irgendwas - das herauszufinden wäre interessant.

              • Sven Rautenberg

              Die Seite wird ja auch komplett gel;aden (incl. Bilder) - das Problem ist nur, wenn die
              Bilder unterdessen veraendert werden, kriegt der Browser das wegen des
              Cachens nicht mit. Es sei denn, du klickst auf Reload().
              Drum hab ich eben gehofft, mit reload() kann ich dafuer sorgen, immer
              eine aktuelle Seite zu haben...

  2. Hallo Joerg !

    Habe sowas mal gemacht vor einiger Zeit. Allerdings nicht
    mit einem Frameset.

    Code:

    <html>
    <title>Saccala Online</title>
    <head>

    <script>
    function makeArray() {
            this.length = makeArray.arguments.length
            for (var i = 0; i < this.length; i++) this[i+1] = makeArray.arguments[i]
    }
    var pix = new makeArray ("1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "8.jpg", "9.jpg", "10.jpg", "11.jpg", "12.jpg", "13.jpg", "14.jpg", "15.jpg", "16.jpg", "17.jpg", "18.jpg", "19.jpg", "20.jpg", "21.jpg", "22.jpg", "23.jpg", "24.jpg", "25.jpg", "26.jpg", "27.jpg", "28.jpg", "29.jpg");

    var nummer = 1;

    function wechsle() {
        document.image.src = "Images/Budapest/Diashow/dia_"+pix[nummer];
        nummer += 1;
        if (nummer == 30) nummer = 1;

    }
    function wechsleback() {

    if (nummer == 1) nummer = 30;
            if (nummer == 2) nummer = 1;
            if (nummer == 3) nummer = 2;
            if (nummer == 4) nummer = 3;
            if (nummer == 5) nummer = 4;
            if (nummer == 6) nummer = 5;
            if (nummer == 7) nummer = 6;
            if (nummer == 8) nummer = 7;
            if (nummer == 9) nummer = 8;
            if (nummer == 10) nummer = 9;
            if (nummer == 11) nummer = 10;
            if (nummer == 12) nummer = 11;
            if (nummer == 13) nummer = 12;
            if (nummer == 14) nummer = 13;
            if (nummer == 15) nummer = 14;
            if (nummer == 16) nummer = 15;
            if (nummer == 17) nummer = 16;
            if (nummer == 18) nummer = 17;
            if (nummer == 19) nummer = 18;
            if (nummer == 20) nummer = 19;
            if (nummer == 21) nummer = 20;
            if (nummer == 22) nummer = 21;
            if (nummer == 23) nummer = 22;
            if (nummer == 24) nummer = 23;
            if (nummer == 25) nummer = 24;
            if (nummer == 26) nummer = 25;
            if (nummer == 27) nummer = 26;
            if (nummer == 28) nummer = 27;
            if (nummer == 29) nummer = 28;
            if (nummer == 30) nummer = 29;

    document.image.src = "Images/Budapest/Diashow/dia_"+pix[nummer];

    }
    //-->
    </script>

    </head>
    <body onLoad="wechsle()">
    <center>
    <img name="image" border="0" src="Images/Budapest/Diashow/blank.jpg">
    <br>
    <br>
    <input
    type="image" src="Images/pfeilleft.gif" width="20" height="22" border="0" alt="zurück" onclick="wechsleback()">

    <input
    type="image" src="Images/pfeilup.gif" width="20" height="22" border="0" alt="schließen" onclick="window.close()">

    <input
    type="image" src="Images/pfeilright.gif" width="20" height="22" border="0" alt="vor" onclick="wechsle()">
    </center>
    <br>
    </body>
    </html>