Marc Reichelt: Serverzeit jede Minute holen ohne refresh??!

Beitrag lesen

Hallo melko,

und auf folgende Weise lasse ich die Uhr beim Clien laufen:

function runTime(){
serverTime.setSeconds(serverTime.getSeconds()+1);
window.setTimeout('runTime()',1000);
}
window.setTimeout('runTime()',1000);

Nur ich bekomme dann nach einer Stunde einen Zeitunterschied von ca. 50 Sekunden!?? kann ich den irgendwie minimieren??
Oder gibt es vielleicht irgendeine andere Art wie ich Serverzeit bekomme ohne die Seite jedes Mal komplett refreshen zu müssen!?

Du lässt immer nach 1000 Millisekunden ein Skript laufen, dass etwas bestimmtes macht.
Ergo hier die Zeiten:

1. 1000 ms Warten
2. Aktion durchführen
3. erneut 1000 ms warten
4. [...]

Wenn du die Funktion serverTime.setSeconds() aufrufst ("Aktion durchführen"), so kostet das ein paar Millisekunden. Auf unterschiedlich schnellen und unterschiedlich belasteten Rechnern sind das mal ein paar Millisekunden mehr oder weniger, auf jeden Fall aber mehr als die Serverzeit.

Du suchst die JavaSript-Funktion setInterval(), die du _ein Mal_ zu Beginn aufrufst und die dann alle 1000 Millisekunden deine Aktion durchführt - parallel zur Zeit, d.h. die Aktion wird durchgeführt während bereits die nächsten 1000 ms Laufen.

Eventuell könntest du ja einen Zähler einbauen, der nach 3600 Sekunden oder so die Seite neu vom Server lädt - und so wieder die aktuelle Uhrzeit genommen wird.

Bis dann!

Marc Reichelt || http://www.marcreichelt.de/

--
Linux is like a wigwam - no windows, no gates and an Apache inside!
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
http://emmanuel.dammerer.at/selfcode.html