Ergebnis 1 bis 7 von 7

Thema: Minutengetriggerter Seitenaufruf

  1. #1
    Unregistriert
    Gast

    Standard 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:

    Code:
    <html>
    <html>
    <head>
    <title>test test</title>
    </head>
    <body>
    
    <iframe src="" id="isv" height="800" width="100%" frameborder="0"></iframe>
    
    <script>
    //das erste mal erstmal initialisieren
    var d = new Date();
    var hour = d.getHours();
    var minute = d.getMinutes();
    
    var url = "http://www.bla.com/" + hour.toString() +"text " + minute.toString() +"text";
    document.getElementById("isv").src=url;
    clock(minute);
    
    //dann der eigentliche code, der von alleine weiter machen soll... jede Sekunde abfragen ob schon wieder eine Minute vergangen, falls ja bitte update...
    function clock(minute) {
    	var f = new Date();
    	if (minute == f.getMinutes()) {
    		window.setTimeout('clock(minute)',1000);
    	} else {
    		var hour = f.getHours();
    		var minute = f.getMinutes();
    		
    		url = "http://www.bla.com/" + hour.toString() +"text " + minute.toString() +"text";
    		document.getElementById("isv").src=url;
    		clock(minute);
    	}	
    }
    </script>
    
    </body>
    </html>
    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
    Ich will doch einfach nur, dass einmal in der Minute die Zeit und somit die URL im Else-Teil aktualisiert wird

    alternativ:
    Code:
    <script>
    var d = new Date();
    var hour = d.getHours();
    var minute = d.getMinutes();
    
    var url = "http://www.bla.com/" + hour.toString() +"text " + minute.toString() +"text";
    document.getElementById("isv").src=url;
    
    function empty(){}
    //warte bis die aktuelle angebrochene minute voll ist, dann aktualisieren, und dann von da ab alle 60 sekunden aktualisieren
    setTimeout('empty()',(60-d.getSeconds())*1000);
    updateURL();
    setInterval(updateURL,60*1000);
    
    function updateURL(){
    	var f = new Date();
    	var hour = f.getHours();
    	var minute = f.getMinutes();
    
    	var uri = "http://www.bla.com/" + hour.toString() +"text " + minute.toString() +"text";;
    	document.getElementById("isv").src=uri;
    }
    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?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    König(in)
    Registriert seit
    13.06.2012
    Beiträge
    1.152
    Danke
    14
    Bekam 63 mal "Danke" in 61 Postings

    Standard AW: Minutengetriggerter Seitenaufruf

    Viel zu aufwändig. -> Meta refresh

  3. #3
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Minutengetriggerter Seitenaufruf

    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

  4. #4
    Interessierte/r Avatar von Friedel
    Registriert seit
    18.09.2008
    Ort
    Weingarten/Pfalz
    Beiträge
    102
    Danke
    1
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Minutengetriggerter Seitenaufruf

    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.

  5. #5
    Unregistriert
    Gast

    Standard AW: Minutengetriggerter Seitenaufruf

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

  6. #6
    Prinz(essin)
    Registriert seit
    26.03.2013
    Beiträge
    835
    Danke
    20
    Bekam 76 mal "Danke" in 75 Postings

    Standard AW: Minutengetriggerter Seitenaufruf

    Zitat Zitat von Unregistriert Beitrag anzeigen
    echo "<meta HTTP-EQUIV='REFRESH' content='60; url=main.php'>";
    ....einfacher geht es wohl nicht!!!!
    Einfacher wohl nicht, jedoch Zitat aus Wikipedia:

    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.

    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?

  7. #7
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: Minutengetriggerter Seitenaufruf

    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.
    HTML-Code:
    <!DOCTYPE html>
    <html>
    <head>
    <title>test test</title>
    <meta charset="utf-8">
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    </head>
    <body>
    
    <div id="isv"></div>
    
    <script type="text/javascript">
    var minutesToRefresh = 1; //hier kannste festhalten bei wieviel minuten immer der call stattfinden soll
    
    function getText(){
        var d = new Date();
        var hour = d.getHours();
        var minute = d.getMinutes();
        
        var url = "http://www.bla.com/" + hour.toString() +"text " + minute.toString() +"text";  //die url: http://www.bla.com/21text 18text scheint auch nich optimal zu sein, aber das wirst du ja wissen
        $('#isv').load(url);
    }
    //function initial bei seiten-aufruf
    getText();
    
    //und dann jede minute im interval...
    var INTERVAL = window.setInterval(getText, 1000*60*minutesToRefresh );
    
    </script>
    
    </body>
    </html>
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

Ähnliche Themen

  1. IE bricht beim Seitenaufruf ab
    Von Gast111083 im Forum HTML & CSS Forum
    Antworten: 11
    Letzter Beitrag: 28.08.2008, 19:02
  2. dateien bei seitenaufruf laden
    Von lippl im Forum HTML & CSS Forum
    Antworten: 10
    Letzter Beitrag: 21.01.2007, 20:10
  3. 2. Fenster bei Seitenaufruf
    Von lippl im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 30.10.2006, 18:15
  4. Serverseitiger Seitenaufruf
    Von im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 13.12.2005, 17:19
  5. Seitenaufruf per Codeingabe in textfeld
    Von Max Dhom im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 20.08.2004, 14:59

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •