![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Probuje napisac chat ala shoutbox i zadaje sobie pytanie czy to wykonalne bez uzycia javy ?
Moj problem polega na tym ze zalogowani uzytkownicy zobacza tekst napisany przez innych uzytkownikow dopiero wtedy gdy sami cos napisza (ewentualnie wykonaja jakas inna akcje). Ogolnie dziala on tak: -Akcja:uzytkownik wpisuje komentarz do pola fromularza wciska send -Przechwytuje send -Zapisuje komentarz do bazy mysql -Czytam z bazy mysql komenatrze -Wyswietlam je -Oczekuje na akcje Czyli nie jestem w stanie wyswietlac ich na biezaco, gdy uzytkownikow pojawi sie wiecej (Uzytkownik1 poki nie wcisnie send nie zobaczy tego co napisal Uzytkownik2). Widok musialby pobierac dane z bazy samodzielnie bez oczekiwania na akcje uzytkownika i nie mam pomyslu jak to zrobic. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jest to wykonalne bez użycia javy , jednak javascript jest tutaj wskazany. Mógłbyś jeszcze jakoś pokombinować z meta refresh (nawet w osobnym iframe), ale najlepiej będzie to zaciągnąć ajaxowo, czyli z użyciem javascript. Również przy użyciu tej techniki zrealizowałbym wysyłanie wiadomości, żeby nie przeładowywać całej strony, jak prawdopodobnie masz w tej chwili.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 13 Dołączył: 8.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Kiedyś robiłem podobną rzecz, tzn Chat. Zrobiłem to w ajaxie(js) i php gdzie sprawdzałem co sekunde czy nie ma nowej wiadomości. Więc jedynie coś w tym stylu.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Google: Bidirectional AJAX, HTTP long polling
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Probowalem troche z tym odswiezaniem co sekunde ale za bardzo mnie denerwuje takie mryganie, trzeba bedzie jednak tego ajaxa sprobowac kiedys bo na razie to pojecia o javie nie mam.
W kazdym razie dzieki za pomoc i pokierowanie na wlasciwe tory |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
javascript to nie java!
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Pierwszy czat, który miał dość sporo zalet zbudowałem w oparciu o jQuery load.
http://api.jquery.com/load/ Odświeżanie co np. 3-4 sekundy w zupełności starczy, implementacja szalenie prosta sprowadza się do 3 linijek jQuery i oczywiście zapytania i widoku wpisów. Potem napisałem oparty o pobieranie ostatnich wiadomości ale szczerze to tamten mimo większego obciążenie (pobiera wszystkie wpisy zamiast nowych) to naprawdę dużo ułatwiał np. moderacje (moderacja widziana automatycznie), czyszczenie rozmowy (teraz wiadomości dodaje na początek, ale nie dopisałem usuwania). Jeżeli nie przewidujesz wielkiego portalu to obciążenie takiego czatu wg mnie jest znikome jeżeli wszystko jest napisane jak trzeba. Troszkę inaczej jakby czat/shoutbox był widoczny dla każdego odwiedzającego ![]() -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
ciekawi mnie Bidirectional AJAX, HTTP long polling. Macie polskie artykuły na ten temat, bo nic nie znalazłem w Google
![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Udalo mi sie jakims cudem zrobic to w Ajaxie (w ogole nie znam javascript) ustawilem odswiezanie co sekunde i zastanawiam sie przy ilu uzytkownikach zarznie mi czat, bo co sekunda czytam 15 ostatnich wpisow z bazy (na jednego usera:D)
Moze lepiej byloby to zrobic przez jakis cache? Byloby szybciej ? Jesli chodzi o Ajaxa to zauwazylem jedna rzecz przypadkowo, gdy uruchomilem starego xp i tam poinstalowane mialem jakies zdeaktualizowane przegladarki + jave, dzialy sie wowczas rozne cuda: - w przypadku opery: po odswiezaniu ajaxowym widok nie pokazywal sie wcale - w przypadku firefoxa bardzo widoczne bylo odswiezanie (mruganie) Natomiast pod Win7 z zaktualizowana Java,Firefoxem, Opera, odswiezanie chodzi ladnie we wszystkich przegladarkach. Za wyjatkiem IE8 ktory przy kazdym odswiezaniu pokazuje zdeaktualizowany widok z pierwszego uruchomienia skryptu. (?) Ten post edytował wertyg 9.10.2012, 22:14:19 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jest to bardzo proste do obejścia. Robisz plik PHP z pętlą która się wykona 120 razy i po każdym "obrocie" wstrzymujesz skrypt sleep(1). W pętli pobierasz po prostu rekordy odpowiednie, zapisujesz do pliku txt i gotowe. Ustawiasz w cronie wykonywanie co 2 min
![]() a teraz w jQuery pobierasz ten plik txt za pomocą i tyle ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 18:43 |