ferngesteuertes "Auto Refresh"

Dieses Thema ferngesteuertes "Auto Refresh" im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Ace_NoOne, 25. März 2005.

Thema: ferngesteuertes "Auto Refresh" Hallo zusammen, zum Spaß habe ich mir eine kleine Seite erstellt, die folgenden Zweck erfüllen soll: Im oberen von...

  1. Hallo zusammen,

    zum Spaß habe ich mir eine kleine Seite erstellt, die folgenden Zweck erfüllen soll:
    Im oberen von zwei Frames kann man eine URL sowie ein Zeitintervall angeben. Diese Angaben werden benutzt, um im unteren Frame die entsprechende URL zu laden und regelmäßig zu aktualisieren.
    Das klappt soweit auch ganz gut (allerdings bisher nur im IE, warum weiß ich noch nicht). Nun wollte ich noch einen Countdown hinzufügen, um in der Statusleiste die Zeit bis zur nächsten Aktualisierung anzuzeigen - und genau hört es bei mir auf, ich krieg's einfach nicht hin (wenn es in JavaScript doch nur einen normalen PAUSE- oder WAIT-Befehl gäbe anstatt dieser rekursiven SetTimeout-Funktion... ).
    Falls sich jemand meine Kreation ansehen würde und vielleicht eine Idee hat, wie ich es besser machen könnte, wäre ich sehr dankbar!

    A propos: Momentan greift das obere Frame, in dem die Einstellungen vorgenommen werden, noch auf eine externe SETTINGS.HTML zurück - kann man das nicht irgendwie in die Frameset-Datei integrieren, um alles in einer eine einzelnen Datei zu haben?
     
  2. Hallo,
    hier ein kleiner Ansatz, habe jetzt leider keine Zeit, geh mit Familie essen... ;D

    Code:
    <html>
    <head>
    <script type=text/javascript>
    <!--
    var frisch = 10; //
    	function cd( )
    	{
    		
    		window.status = Zeit bis zur nächsten Aktualisierung:  + frisch + sek;
    		frisch = frisch - 1;
    		if (frisch >= 0)
    		{
    		window.setTimeout('cd( )',1000);
    		}
    		else
    		{
    		window.status = Die Seite wurde aktualisiert;
    		}
    	}
    //-->
    </script>
    </head>
    <body onload=cd( )>
    </body>
    </html>
    
     
  3. Danke für die rasche Antwort.
    Allerdings hilft mir dieser Ansatz leider nicht weiter; etwas Ähnliches hatte ich bereits, nur irgendwie klappt's in Verbindung mit der periodischen Aktualisierung des unteren Frames nicht...
     
  4. Code:
    <script type=text/javascript>
    <!--
    
    function refreshFrame()
    {
    	switch(document.form_settings.interval_unit.selectedIndex)
    	{
    		case 0: // seconds (s)
    			var interval = document.form_settings.interval.value * 1000;
    			break;
    		case 1: // minutes (min)
    			var interval = document.form_settings.interval.value * 60000;
    			break;
    		default: // not necessary due to fixed selection list
    			var interval = document.form_settings.interval.value * 1000;
    	}
    	//countDown(interval); // working!
    	countDown(interval);
    }
    
    function countDown(time) // working!
    {
    	i = time; // to circumvent problem with re-defining parameter value in recursive runs (?)
    	window.defaultStatus = Time till refresh:  + (i/1000) +  seconds;
    	i = i - 1000;
    	if(i <= -1) {
    		parent.frames[1].location.href = document.form_settings.URL.value;
    		refreshFrame();
    	} 
    	else {
    		window.setTimeout(countDown(i), 1000);
    	}
    }
    
    //-->
    </script>
    
    Und das ganze bitte in den oberen Frame ;) ;) ;)

    gruss conny

    PS:
    - Die Millisekunden hab ich mal wegen is nich rausgeschmissen ;) ;D
    - Den Standardwert hab ich auf Sekunden erhöht
     
  5. Genau so sollte es sein - supi! Vielen Dank!!
    Ein paar kleine Anpassungen musste ich vornehmen (z.B. document.frames[0].form_settings.URL.value statt document.form_settings.interval.value), aber sonst klappt's perfekt.
    Naja, noch nicht ganz: Im Firefox rührt sich seltsamerweise überhaupt nix. Die Funktion wird allerdings aufgerufen, wenn man den Refresh-Button klickt; ich habe probeweise ein alert('test') in die refreshFrame-Funktion eingefügt, und das klappt auch - aber eben sonst nix!? :(
     
  6. OK, meine Funktion hat bei mir auch im Fuchs funktioniert.
    Schon mal die JS Einstellungen kontrolliert ???

    Versteh ich nicht :(
    Das eine hat doch mit dem anderen nix zu tun ???

    Aber wenns geht, soll mir's recht sein ;D
     
  7. Seltsam - ich hab' ja an deiner Version kaum was geändert (außer eben o.g. Zusatz). Und die JS-Einstellungen sind auch alle aktiviert. Könntest du's mal mit meiner Version im FF probieren?

    Oops, falsch gepastet: sollte natürlich heißen: document.frames[0].form_settings.URL.value statt document.form_settings.URL.value - der Verweis auf das entsprechende Frame hatte halt gefehlt...
     
  8. Nö, da hat nix gefehlt ;D

    Was is'n damit ???
    Nicht gemacht :mad:

    edit: Im oberen Frame kann im BODY-Tag eine onLoad Anweisung rein, dann rennts von alleine :D

    Code:
    <body onLoad=refreshFrame()>
     
  9. Oops, das hatte ich komplett übersehen (trotz der drei Hasen... ) - sorry!
    Dann brauche ich natürlich auch den Verweis auf das Frame nicht - und schon funktioniert's.
    Nochmals besten Dank für die Hilfe!!

    Jetzt muss ich nur noch dran denken, dass der Refresh-Button nur ein einziges Mal betätigt werden darf, sonst stimmt der Timer nicht mehr. Aber das ist schon gut so.
     
  10. Hallo Ace_NoOne

    Das was du da geschrieben hast ist genau aber genau das was ich suche?
    ICh verstehe nicht viel von HTML und so.. darum habe ich eine bitte an dich.
    Würdest du mir den Quelcode schicken damit ich dieses Tool bei mir Lokal laufen lassen kann? Danke dir Gruss
     
Die Seite wird geladen...

ferngesteuertes "Auto Refresh" - Ähnliche Themen

Forum Datum
externe Festplatte automatisch aus- und einschalten Windows 10 Forum 1. Dez. 2016
Bilder von Karte automatisch ins Netzwerk kopieren. Womit? Software: Empfehlungen, Gesuche & Problemlösungen 2. Okt. 2016
Windows 10 Computer startet automatisch neu??????warum Windows 10 Forum 16. Sep. 2016
Automatische Updates Windows 10 Forum 11. Aug. 2016
Automatisches Downgrade auf Windows 7 nach Installation von Windows 10 Windows 10 Forum 14. Juli 2016