Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] [javascript] synchronizacja czasu, czy istnieje już jakiś na to sposób?
Cezar708
post
Post #1





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam

Mam pytanie, czy istnieje jakiś system synchronizacji czasu pomiędzy skryptem JavaScript a PHP?

Chodzi mi o taką sytuację, na przykład:

Załóżmy, że skrypt PHP "wie" o tym, że dany proces zakończy się za X sekund, podczas generowania strony statycznej przekazuje zmienną zawierającą pozostały czas (X sekund) do skryptu JavaScript, po to aby JavaScrpt mógł już samodzielnie odliczać czas w dół.

Jest jednak mały problem, nie jestem w stanie przewidzieć ile czasu będzie się strona przesyłała do przeglądarki, a jak wiemy jest to uzależnione od wielu czynników (odległości, ruchu w sieci, szybkości łącza). A co za tym idzie czas od momentu odliczania w JavaScript będzie nie X tylko X-m, gdzie m to czas przesyłu danych....

więc czy jest jakiś sposób na to aby w miarę skutecznie synchronizować czasy pomiędzy skryptami PHP a JavaScript?
Może jakieś wykorzystanie AJAXa?

Osobiście usatysfakcjonowałaby mnie rozbieżność pomiędzy czasami na serwerze a u klienta nie przekraczająca 1 sekundy.

Pozdrawiam
Cezar

PS: Nie wiedziałem w zasadzie w jakim dziale umieścić ten wątek, ponieważ jest on z pogranicza JavaScript i PHP. Umieściłem tutaj, ewentualnie proszę o przeniesienie.
Go to the top of the page
+Quote Post
qqrq
post
Post #2





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Hm, a nie możesz z PHP-a wysłać do przeglądarki aktualnego (dla PHP) znacznika czasu? Wtedy JS będzie wiedziało "gdzie jest" i będzie odliczało od odpowiedniego miejsca. Jeśli źle cię zrozumiałem, to sorry, ale trochę to zamotane. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Cezar708
post
Post #3





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(qqrq @ 26.03.2008, 10:57:23 ) *
Hm, a nie możesz z PHP-a wysłać do przeglądarki aktualnego (dla PHP) znacznika czasu? Wtedy JS będzie wiedziało "gdzie jest" i będzie odliczało od odpowiedniego miejsca. Jeśli źle cię zrozumiałem, to sorry, ale trochę to zamotane. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


zauważ, że w cytowanym tekście pogrubiłem mały tekst. Przesłanie z PHP do JavaScript nie stanowi problemu, gorzej z dokładnym określeniem czasu ile komunikat będzie przesyłany... bo niestety trzeba to dokładnie oszacować
Go to the top of the page
+Quote Post
qqrq
post
Post #4





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(Cezar708 @ 26.03.2008, 11:01:19 ) *
gorzej z dokładnym określeniem czasu ile komunikat będzie przesyłany...


Właśnie po to wysyłamy znacznik czasu - PHP wysyła swój znacznik, JS go odbiera, porównuje ze swoim (aktualnym) i mamy różnicę czasu pomiędzy rozpoczęciem wykonywania skryptu (timestamp wygenerowany przez PHP) a jego "odebraniem" przez JS. Np.:

  1. var now = new Date();
  2.  var diff = now.getTime() - <?php echo time(); ?>000;


i w ten sposób masz różnicę (w milisekundach - mniej więcej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) między "czasem PHP" a "czasem JS".
Go to the top of the page
+Quote Post
Kocurro
post
Post #5





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Przy założeniu, że czas na komputerze jest zgodny z czasem GMT ...
Go to the top of the page
+Quote Post
grzesiek_g
post
Post #6





Grupa: Zarejestrowani
Postów: 249
Pomógł: 30
Dołączył: 18.07.2007

Ostrzeżenie: (0%)
-----


Moim zdaniem jest to niemożliwe do oszacowania z poniższych powodów:
1. Przykład - w czasie otwierania naszej strony użytkownik skończył pobieranie pliku, w związku z czym transfer podskoczy mu znacząco (i sytuacja odwrotna).
2. Różnice w chwilowym obciążeniu łączy pomiędzy serwerem a klientem.
3. Chwilowe obciążenie procesora w komputerze klienta.
Go to the top of the page
+Quote Post
Kocurro
post
Post #7





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Jedyne rozwiązanie to zabawa z ajaxem i wysyłanie X zapytań jedno po drugim, następnie wyznaczenie na podstawie czasów zapytań i odpowiedzi szacowanego czasu przepływu informacji ...
Go to the top of the page
+Quote Post
Cezar708
post
Post #8





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(qqrq @ 26.03.2008, 11:12:13 ) *
i w ten sposób masz różnicę (w milisekundach - mniej więcej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) między "czasem PHP" a "czasem JS".


no właśnie, trzeba się zgodzić z Kocurro, który powidział:

Cytat(Kocurro @ 26.03.2008, 11:15:32 ) *
Przy założeniu, że czas na komputerze jest zgodny z czasem GMT ...


czas nawet może być GMT, ale na przykład niedokładnie na komputerze klienta ustawiony, na przykład o kilka sekund


Cytat(Kocurro @ 26.03.2008, 11:43:03 ) *
Jedyne rozwiązanie to zabawa z ajaxem i wysyłanie X zapytań jedno po drugim, następnie wyznaczenie na podstawie czasów zapytań i odpowiedzi szacowanego czasu przepływu informacji ...


właśnie uważam, że takie rozwiązanie chyba będzie jedynie dobre... po prostu wysyłać co kilka sekund AJAXem, zapytanie do serwera o czas i na tej podstawie obliczać czas odpowiedzi... tylko nie wiem jak rozpocząć liczenie czasu.. myślicie, że nie będzie błędu warunków początkowych? Czyli jak przesłać pierwszy znacznik czasu?

Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 20:08