Moin,
Hört sich gut an, geht aber IMHO nicht gut, da ich die Systemverzögerunng in Millisekunden nicht kenne. So kann ich nur mutmaßen, dass die nächste Änderungn in den nächsten 1000ms stattfinden muss, aber eben nicht _wann genau_.
Doch, window.settimeout("dyndate()", 1000-jetzt.getMilliseconds()); ruft deine Funktion genau nach dem Wechsel auf, bzw. so genau wie möglich. Wenn der Prozessor grade beschäftigt ist, dann geht das natürlich nicht und es wird erst zu nächstbesten Zeitpunkt getan.
Durch die lahmen Interpreter der Browser kann ich eben _nicht_ exakt den Zeitpunkt der Aktualisierung vorraussagen
Daran änderst du aber mit einem 300ms-Timeout nichts. Im Gegenteil: Es wird dir vergleichsweise häufig passieren dass die Funktion kurz vor dem Wechsel aufgerufen wird, die Uhrzeit noch einmal auf den alten Wert setzt und dann erst wieder in 300ms aktiv werden _kann_ (von dir definiert). Wenn du ihm hingegen sagst, er solle die Funktion doch bitte diemnächst aufrufen und er grade keine Zeit hat, dann ist es egal mit welchem Timeout-Wert du das getan hast: er hat keine Zeit dafür.
Wenn ich das in JS programmieren wollte würde die Funktion länger als eine Sekunde laufen und garnix würde mehr gehen *g*
Also wenn du eine Funktion hast, die länger als eine Sekunde läuft hast du eh' etwas falsch gemacht.
Ich habe grade einen kurzen Test gemacht: Im IE schaltet eine derart per JS gebaute Uhr um, bevor es die Uhr in der Taskleiste[1] tut. Ich habe grade keinen lokal installierten Mozilla parat und der den ich zur Zeit über X über SSH benutze lässt verständlicherweise nicht zum Vergleich heranziehen ;-).
[1] Ich kann weit und breit keine andere vorinstallierte Uhr finden und in die Systemsteuerung lässt es mich aus Sicherheitsgründen nicht rein.
Henryk Plötz
Grüße aus Berlin