Hallo Sven :)
Du solltest dich bei Javascript nicht auf den zeitlich korrekten Ablauf verlassen. Die Ausführungsgeschwindigkeit von Javascript ist in den einzelnen Browsern höchst unterschiedlich.
ok
Dein Programm verläßt sich darauf, das zwischen dem Ablauf des Timeouts und dem Neustart des Timeouts genau 0,000 Millisekunden Zeit vergehen - das Javascript also praktisch in Nullzeit ausgeführt wird. Das ist natürlich nicht so. Funktionsaufrufe benötigen Zeit. Folglich geht deine selbstgebaute Uhr auf Dauer immer falscher. Bei Opera kommt dies nur am deutlichsten zum Vorschein.
ok
Der Gedanke, die Serveruhrzeit als Maßstab zu nehmen, ist dabei ja grundsätzlich nicht verkehrt. Nutze aber ebenso die Tatsache, dass jeder Rechner über eine gut funktionierende, zumindest die Sekunden zuverlässig zählende Uhr verfügt. Beim Seitenladen weißt du durch PHP die Serverzeit und stellst mit Javascript die Differenz zur Client-Zeit fest. Jede Sekunde gibst du dann die Client-Zeit, korrigiert um die Server-Differenz, aus - und schon mußt du dir um unregelmäßige Zeitaufrufe keine Gedanken mehr machen.
Wie ich per JS die Clientzeit auslesen kann weiß ich zwar nicht, krieg ich aber wohl rel. schnell raus.
Aber:
Wie soll des sekundenmäßige Abgleichen funtionieren ?
Oder gibt es bereits eine JS interne Funktion, die jedes Sekunde die Zeit ausgibt ?
Weil wenn nicht hab ich ja das gleiche Problem, das sich meine Funktion alle 1000ms selbst aufrufen soll und ich steh wieder am Anfang :)
Könntest Du mir also nochmal folgenden Satz genauer erklären:
Jede Sekunde gibst du dann die Client-Zeit, korrigiert um die Server-Differenz, aus [...]
Danke und gute Nacht!
Sven