Hi,
No ’ne Frage zu Uhrzeitanzeigescripts.
Hypothetische Annahme: Es gibt sinnvolle Anwendungen. ;-)
Disclaimer: Die Weltzeituhr-Seite war eigentlich nur zum Testen der
toISO8601String()
-Funktion gedacht. Ist dann etwas mehr Spielerei draus geworden.
function foo() {
refreshDisplay();
window.setTimeout("foo()", 1000);
}
braucht ja zum Ausführen von refreshDisplay()
etwas Zeit, sagen wir 42 ms. Der Aufruf von foo()
– die Aktualisierung der Zeitanzeige – ist also nicht jede Sekunde, sondern alle 1042 ms.
Ruft man foo()
erstmals um 00:00:00.000 auf, erfolgen die weiteren Aufrufe
00:00:01.042
00:00:02.084
00:00:03.126
[gähn]
00:00:22.924
00:00:23.966
00:00:25.008
Die Uhrzeitanzeige springt also von 00:00:23 auf 00:00:25.
Setzt man den Timeout kürzer, sagen wir 950 ms (bei 42 ms für foo()
):
00:00:00.942
00:00:01.884
00:00:02.826
[gähn]
00:00:16.014
00:00:16.956
00:00:17.898
Die Anzeige verweilt fast zwei Sekunden lang auf 00:00:16.
Die Anpassung der Länge des Timeouts (window.setTimeout("foo()", 968);
) ist ja nicht wirklich eine Lösung, da die 42 ms für ein bestimmtes System gelten; auf anderen sind es mehr oder weniger.
Das Auffrischen der Anzeige alle Zehntelsekunde ist wohl Verschwendung von Rechenleistung. Interupt-gesteuerte Funktionsaufrufe gibt’s wohl in JavaScript nicht.
Muss man also mit Unregelmäßigkeiten bei der Anzeige (manche Sekunden doppelt oder übersprungen) leben?
Live long and prosper,
Gunnar
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)