![]() |
![]() ![]() |
![]() |
![]()
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. |
|
|
![]()
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)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań 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) 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ć |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
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.:
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". |
|
|
![]()
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 ...
|
|
|
![]()
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. |
|
|
![]()
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 ...
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
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ł: 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 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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 20:08 |