Minutengetriggerter Seitenaufruf

  • Hallo,

    ich möchte gerne per Skript die Uhrzeit nutzen um mit den Werten jede Minute einen neuen Seitenaufruf zu machen. Aber ein Code sagt hoffentlich mehr als 1000 Worte:

    Das Problem ist, dass beim Wechsel der Minute die Seite anfängt plötzlich sekündlich zu laden. Aber wie kann das sein? Das Laden befindet sich doch im ELSE-Teil?
    Wenn ich das letzte clock(minute) weglasse passiert es nicht. Aber es aktualisiert sich dann auch nicht mehr jede Minute. Habe es auch schon mit einer Endlosschleife probiert statt über einen Funktionsaufruf, aber dann geht GAR nichts mehr :D
    Ich will doch einfach nur, dass einmal in der Minute die Zeit und somit die URL im Else-Teil aktualisiert wird :(

    alternativ:


    Aber das geht nicht snychron... gibt zwar jede Minute ein update, aber eben nicht die "echte" Zeit. Welche Zeit wird da überhaupt genommen eigentlich? Die eigene Zeit aufm PC?


    Das zweite Problem was ich habe, ist die height beim iFrame richtig zu bestimmen. Habe auch schon versucht, dass über screen.height zu umgehen, aber klappt auch nicht.

    Wie mach ich das alles nun am geschicktesten?

  • Du solltest dich mal mit Ajax vertraut machen um immer nur die Inhalte einzeln neu zu holen, die wirklich aktualisiert werden müssen. Das wird sicherlich nicht die komplette Seite sein. So ein minütlicher Autorefresh einer kompletten Seite ist in meinen Augen ein ziemliches Unding.
    Für Ajax empfehle ich die Verwendung eine JS-Frameworks, z.B. jQuery.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Hallo.

    Du musst darauf achten, ob deine Variablen globale oder lokale Variablen sind und sie entsprechend behandeln.

    Code
    } else {
             var hour = f.getHours();
             var minute = f.getMinutes();
    ...


    Diesen Quellcode verwendest du innerhalb einer Funktion. Hier sind hour und minute also lokale Variablen. Wenn du damit die globalen Variablen hour und minute, die du außerhalb der Funktion deklariert hast, ansprechen willst, solltest du "var" weglassen.

    In deinem Script werden die globalen Variablen hour und minute nicht überschrieben. Nachdem sich die Uhrzeit soweit verändert hat, dass die if-Bedingung das erste Mal nicht mehr erfüllt ist, bleibt sie immer unerfüllt. Erst nach einer Stunde, passt der Wert für minute wieder und das sekündliche Neuladen wird für 1 Minute unterbrochen.

  • echo "<meta HTTP-EQUIV='REFRESH' content='60; url=main.php'>";
    ....einfacher geht es wohl nicht!!!!

  • echo "<meta HTTP-EQUIV='REFRESH' content='60; url=main.php'>";
    ....einfacher geht es wohl nicht!!!!


    Einfacher wohl nicht, jedoch Zitat aus Wikipedia:

    Zitat

    Diese Art der Weiterleitung wird vom W3C-Konsortium allerdings nicht empfohlen, und zwar aus folgenden Gründen: Erstens wird die Seite, auf der sich die Meta-Angabe zur Weiterleitung befindet, komplett geladen, sodass sie komplett einsehbar ist. Zweitens kommt es zu dem Problem, dass wenn der Benutzer nach erfolgreicher Weiterleitung auf den Zurück-Button klickt, er dann sofort wieder weitergeleitet wird.

    Wie SinnlosS schon sagte ist die Variante mit Ajax die Zeitgemässeste.

    Zitat


    Das zweite Problem was ich habe, ist die height beim iFrame richtig zu bestimmen. Habe auch schon versucht, dass über screen.height zu umgehen, aber klappt auch nicht.

    Warum überhaupt ein Iframe, was soll das denn werden wenn`s mal fertig ist?

  • also was du da offensichtlich vorhast könnte mit ajax so aussehn:
    der häßliche iframe is dann auch weg und das div passt sich ja seinem inhalt an oder kann separat gestyled werden.