![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 3 Dołączył: 31.01.2011 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
witam serdecznie, napisałem coś na szybko:
jest to sfiddlowane tu: https://www.tehplayground.com/CkYfUInJPBESsPjc generalnie u mnie w obecnym momencie pokazuje ze czas z serwera jest ok 13 sekund opozniony wzgledem przegladarki. Pytanie - czy daj się (i jak) to zniwelować a najlepiej zrobić jakiś button ze skryptem, który zaktualizuje czas w przeglądarce / systemie względem czasu PHP..? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Najprościej ustalić różnicę między czasem serwera i klienta:
Funkcja getTime() zwróci Ci czas zsynchronizowany z serwerowym, bo zna różnicę między nimi. Na samym setInterval() czy tam setTimeout() nie można polegać, bo nie ma gwarancji, że rzeczywiście wykona się po ustalonym czasie. Ja używam takiego sposobu jak powyżej, a jeśli chcę do tego wyświetlać np. zegar w czasie rzeczywistym, to korzystam z takiej funkcji wewnątrz właśnie setInterval(). W tym przypadku już ewentualne rozbieżności czasowe dla setInterval() nas nie interesują, bo nawet gdy wykona się zbyt późno lub zbyt wcześnie, to zwrócony czas i tak jest prawidłowy. Jedyną zagwozdką jest wtedy, na ile ustawić licznik setInterval(). Ja ustawiałem na 1000 (co sekundę), bo aż tak mnie nie obchodziły ewentualne zgrzyty w postaci np. pokazywaniu tej samej wartości zegara przez dwa cykle (dwie sekundy) lub skoki o dwie sekundy w jednym cyklu. Ale jeśli zegar musi być bardzo realistyczny, to warto rozważyć mniejszą wartość w setInterval(), może nawet 100 milisekund. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 17:03 |