Tylko zauważ, że to Ci co około sekundę będzie dopisywało do dokumentu aktualny czas. Nie będzie to wyglądało jak aktualizujący się zegar. Używasz document.write
i każde wywołanie tej funkcji dopisze do dokumentu kolejny ciąg znaków z aktualnym czasem.
Zamiast document.write
, poleciłbym utworzenie sobie w HTML-u jakiegoś elementu, pobranie go za pomocą metod DOM (np. document.getElementById
) i wsadzanie aktualnego czasu do środka tego elementu za pomocą innerHTML
. Wtedy zegar będzie "chodził" w określonym miejscu.
Aha: jeśli do setTimeout
lub setInterval
przekażez czas 1000
[ms], to czasami zegar może zgubić sekundę. Tj. wyświetli najpierw np. 00:00:05
, a następnie od razu 00:00:07
. To dlatego, że nie ma gwarancji, iż funkcja podana do setTimeout
lub setInterval
wywoła się dokładnie po żądanym czasie. Wykona się (iirc) CO NAJMNIEJ po tym czasie. Być może po nieco dłuższym, szczególnie jeśli na stronie działałyby inne skrypty -- takie procesorożerne. I wtedy zegar może nie zdążyć wyświetlić którejś sekundy, choć wciąż będzie chodził dobrze. Prostym rozwiązaniem jest aktualizacja zegara np. co pół sekundy.