![]() |
![]() |
-WideSky- |
![]()
Post
#1
|
Goście ![]() |
Witam.
Zastanawiam się nad technologią shoutboxa. Chciałbym zrobić coś w rodzaju chatu. Ma to działać tak: W przeglądarce X ktoś wykonuje akcję (przykładowo wysyła wiadomość o jakiejś treści). W tym samym czasie w przeglądarce Y (na innym komputerze lub na tym samym, to nie gra roli) chcę, żeby ktoś otrzymał tę właśnie wiadomość. Oczywiście konieczne będzie przesłanie tej wiadomości do bazy. Moje pytanie brzmi: co dalej? Nie widzę innego sposobu, jak tylko ustawić timeout w przeglądarce na jakąś wartość i co pewną ilość milisekund wykonywać zapytanie sprawdzające, czy przypadkiem nie ma jakichś nowych wiadomości które należy wyświetlić użytkownikowi. Tylko powstaje problem - już przy 10 użytkownikach zacznie się robić sieczka, jeśli każdy powiedzmy co 250 milisekund będzie próbował wysłać do bazy zapytanie. A aplikacja docelowo ma działać na znacznie więcej uzytkowników niż 10, do tego taki chat nie będzie jedyną jej funkcją, a tylko dodatkiem - cała reszta (spora) będzie uzywać tej samej bazy. Według mnie to będzie masakrycznie obciążające, i nie będzie działać w czasie rzeczywistym. A szczególnie zależy mi na tym, żeby opóźnienia nie były duże, 1 sekunda to już za dużo. Jest jakieś inne wyjście? Poza tym drugim moim problemem jest to, że ustawianie w przeglądarce czasu, co jaki ma się wykonywać zapytanie, wydaje mi się jakieś nieeleganckie, a na pewno obciąża już nawet samą przeglądarkę... Nie da się od razu po wysłaniu wiadomości do bazy przez kogoś pobierać odpowiednie dane? A nie sprawdzać co określony czas, czy jest coś nowego? Chodzi o to, żeby przy małej aktywności uzytkowników (na przykład nocą) ich przeglądarki nie wysyłały masy niepotrzebnych zapytań. No i o to, że trudno ustalić wartość tego timeoutu, 250 milisekund to w pewnych sytuajcach za często, a w pewnych za rzadko. I wolałbym, gdyby od razu po zmianie zawartości bazy (czy jakiegoś pliku, jeśli istnieje taki sposób dla plików, a nie istnieje dla baz), wszyscy inni pobierali tę zaktualizowaną zawartość. Nie wiem, czy się jasno wyraziłem, ale mam nadzieję, ze ktoś mnie zrozumie. Jest jakieś rozwiązanie dla mnie? Chociaż jakiś kompromis? (Tak, wiem, jest - napisać serwle Javy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) A jakieś inne? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) Dziękuję za uwagę. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Cytat Próbowałem się zarejestrować, ale potwierdzenie aktywacji przez maila to drobne przegięcie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Nie chciało mi się (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) A no fakt zapomnialem dac konto testowe LOGIN:uw_test HASLO:uw_test Cytat P.S. marcio, być może mintAjax i jQuery odpowiadaja na moje pytania, ale nie jestem w temacie, jeśli chodzi o te frameworki. Mógłbyś objaśnić zasadę działania? http://pl.wikipedia.org/wiki/AJAX Ogolnie nie znam ani js ani Ajax z js to tylko podstawy podstaw a ajax'a liznolem jak mi byl potzrebny ogola zasada jest taka ze ajax dziala tak jakby w tle bez przeladowania strony dodajac do tego js mozna wykonywac dana funckje co jakis czas Mysle ze ktos bardziej doswiadczony ci to wytlumaczy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) P.S mintAjax to taki prostszy framewor Ajax'a Ten post edytował marcio 5.05.2008, 19:12:33 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 05:56 |