![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Jak zrobić automatyczne odświeżanie np. co 15 sekund? Chodzi mi o autorski skrypt czata
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 4 Dołączył: 11.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zależy czego. Ogólnie do wykonywania jakiś operacji po stronie klienta (jak np. odświeżanie całej lub części witryny) wykorzystuje się JS'owe cudo: setInterval.
http://www.w3schools.com/jsref/met_win_setinterval.asp |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 2 Dołączył: 15.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tu jest przykład odświeżenia części strony div'a co x czas.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
lepiej używać setTimeout: http://zetafleet.com/blog/why-i-consider-setinterval-harmful
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki o to mi chodziło. Użyłem setTimeout i działa dobrze.
Teraz chciałbym zablokować możliwość pisania przed minięciem 3 sekund od poprzedniej wiadomości. Próbowałem coś z delay(), ale to chyba tutaj się nie sprawdzi. I wie ktoś czy AJAX ma jakiś wpływ na brak polskich znaków? Mam kodowanie plików na utf-8, bazę utf8_general_ci + mysql_query("SET NAMES UTF8"), a dalej nie mam polskich znaków w wiadomościach. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
mam takie coś:
a w PHP zwykłe zapytanie do bazy Ten post edytował d.stp 23.09.2012, 20:44:38 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Wystarczy utworzyć zmienną która będzie zawierała czas unix i porównywać przy wysyłaniu.
Jeśli różnica mniejsza niż 3 sekundy odpowiedni alert czy inny komunikat. Można też po stronie PHP dodatkowo ale myślę, że to wystarczy spokojnie. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Chyba źle szukam bo nie mogę nic znaleźć na temat unix time... zrobiłem to na sekundach, ale coś jest nie tak bo nie działa...
Chyba źle to w ogóle robię (IMG:style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
10 sekund zajęło mi znalezienie funkcji w JS zwracającej czas unix (nie znałem jej).
Czas unix ale w milisekundach więc albo podziel przez 1000 albo przy warunku zamiast 5 (sekund) daj 5000 (milisekund). Ten post edytował markonix 24.09.2012, 11:36:29 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dobra, ale to i tak nie działa
Nie wyskakuje alert, wiadomość się wysyła Ten post edytował d.stp 24.09.2012, 11:54:56 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 266 Pomógł: 9 Dołączył: 21.05.2008 Skąd: Łomianki Ostrzeżenie: (0%) ![]() ![]() |
zamień na
Czy jak tam w JS się wykonuje obliczenia na liczbach i zmiennych. W każdym razie to błąd logiczny (IMG:style_emoticons/default/tongue.gif) Ten post edytował ArekJ 24.09.2012, 12:13:39 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Teraz nie mogę wysłać wiadomości bo za każdym razem wyskakuje alert (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Teraz nie mogę wysłać wiadomości bo za każdym razem wyskakuje alert (IMG:style_emoticons/default/smile.gif) A znasz coś takiego jak pojęcie debugowania + samodzielności? Warunek jest po prostu źle skontrowany więc co problem na niego popatrzeć i poprawić zamiast lecieć z tym na forum. W skrócie powinien sprawdzać czy różnica między aktualnym czasem unix, a czasem wysłania ostatniej wiadomości jest mniejsza od określonej wartości. Pogrubione przerób na konkretne zmienne i symbole i masz skrypt. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
... nie wiem naprawdę jak to zrobić
heh, wystarczyło przenieść ustawienie zmiennej poza funkcje (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
1. Każde odpalenie funkcji chat_send ustawia zmienne na nowo, więc w takiej postaci jak to teraz jest zrobione - nigdy nie zadziała.
2. W Twoim przykładzie pierwszy warunek NIGDY nie przejdzie, z oczywistych powodów mam nadzieję. 3. Wywal definicję zmiennej czas_wyslania_ostatniej_wiadomosci nad funkcję. 4. Przy wysyłaniu nie dodawaj tych 5 sekund, rób to w pierwszym warunku. 5. W pierwszym warunku dodaj lub czas_wyslania_ostatniej_wiadomosci równy jest zero. Jeżeli wykonasz te wszystkie punkty to wydaje mi się że powinno działać, jeżeli nie to na pewno będzie bardziej poprawne niż jest to teraz. |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odp. ale sam na to wpadłem (IMG:style_emoticons/default/biggrin.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 16:13 |