Seite abschaltbar automatisch neu laden

Fragen und Antworten zur clientseitigen Programmiersprache JavaScript

Seite abschaltbar automatisch neu laden

Beitragvon marco am Do 12. Feb 2009, 11:34

Hallo,

wie kann ich dafür sorgen, dass ein in einer Seite eingebettetes Frame in bestimmten zeitlichen Abständen und nur wenn der Benutzer das auch will immer wieder neu geladen wird? In HTML kann man ja einfach mit den Meta-Angaben einen Reload anstoßen und der wird dann immer wieder ausgeführt ohne dass man das abbrechen kann. Aber ich will, dass der Besucher diese Funktion irgendwie ein- und ausschalten kann ohne gleich das ganze Frameset mit allen Seiten neu laden zu müssen. Evtl. soll man die Zeit zwischen den reloads auch anders einstellen können aber das ist erstmal nicht so wichtig.

Grüße
Marco
marco
 
Beiträge: 12
Registriert: Do 6. Mär 2008, 13:18
Posts

Beitragvon kalle am Do 12. Feb 2009, 12:18

Hi,

mit einem HTML-Reload ist das nicht möglich, da er auf jeden Fall ausgeführt wird... Hier muss schon Javascript ran! Kannst eine Checkbox in der HTML-Datei unterbringen, mit der man die Reloads an und abstellen kann...
Hier mal ein Beispiel, wie ich mir das denke: Du hast eine HTML-Seite mit einem darin enthaltenen Frame das immer wieder aktualisiert werden soll. Das Frame kann ja mit setInterval zyklisch reloadet werden. Mit folgender Funktion sollte das gehen:
Code: Alles auswählen
.....
ival = -1;

function toggle ()
{
   if (ival < 0)
      ival = setInterval ('frames[0].location.reload()', 400);
   else
   {
      clearInterval (ival);
      ival = -1;
   }
}
.....

Bis dahin ist das kein Problem. Jetzt soll den Besuchern mit einer Checkbox ermöglicht werden den Reload abzuschalten und bis zum erneuten Einschalten auch nicht mehr durchzuführen. Dann baut man einfach eine Checkbox ein, mit der das reloaden an und abgeschaltet wird. Sieht im HTML-Code ungefähr so aus:
Code: Alles auswählen
<input type="checkbox" onclick="toggle()">

Klickt der Besucher auf die Checkbox, so wird der Intervall entweder gestartet oder beendet (je nachdem, wie der Status vorher war). Der Status der Checkbox und die Frage, ob der Reload beim ersten Aufruf an oder aus ist muss natürlich miteinander abgestimmt sein.

Die Intervalllänge kann mit einem normalen Eingabefeld und auch über Events gesteuert verändert werden. Hier gibt es z.B. onchange, das bei Änderungen auftritt oder onblur (tritt auf, wenn ein Element den Focus verliert). Die Länge des Intervalls kannst Du in einer Variable ablegen und den Aufruf von setInterval, statt mit dem fixen von oben, mit dem eingegebenen Wert absetzen.
kalle
 
Beiträge: 11
Registriert: Do 6. Mär 2008, 13:25
Posts

Beitragvon marco am Do 12. Feb 2009, 12:57

Na das ist doch schon mal ein Anfang! Danke! Das mit der Länge der Abfrageintervalle werde ich sicher auch noch hin bekommen, wenn das mit Textfeldern auch so funktioniert. :)
marco
 
Beiträge: 12
Registriert: Do 6. Mär 2008, 13:18
Posts


Zurück zu JavaScript

cron