Dynamiczna zmiana statusu online

0

Hej, mam funkcje która sprawdza czy użytkownik jest zalogowany lub nie. Poradzi ktoś, aby była wywoływana przy zmianie statusu tego usera ? Mam listę użytkowników na stronie i jak się user wyloguje to chce, aby funkcja się wywołała w celu zmiany statusu. Jak to mogę zrobić ?

0

Daj może więcej konkretów, pokaż funkcję o której piszesz, wyjaśnij co oznacza "zmiana statusu przez usera", czy piszesz to w oparciu o jakiś framework/bibliotekę, czy w czystym JS + jQuery?

Bo na razie to możesz jedynie dostać odpowiedź w stylu Zrób tak, żeby funkcja się wywoływała w odpowiednich momentach czyli np. podczas wylogowania. Nawet nie wiemy, jak u Ciebie to wylogowywanie wygląda :P

0

Moja funkcja//pastebin.com/XgEEt3Yb

Jest JS +Jquery i ajax

No chodzi mi o to ze jak patrze na liste userow i jeden z nich sie wyloguje to automatycznie bez przeladowania strony kropka z online powinna sie zmienic na offline.

1

Zrobienie tego za pomocą AJAX nie jest optymalne, poczytaj o WebSocket. Wtedy serwer sam powiadomi klienta jak któryś z użytkowników się wyloguje. Jak chcesz to zrobić w AJAX to musisz po prostu odpytywać co chwilę serwer o zmiany statusów, albo pobierać wszystkie statusy.

0

Moja wiedze jest zbyt uboga, aby użyc WebSocketa. Jak by to zrobić Ajaxem ?

0

No to jak napisał @Markuz - musisz cyklicznie odpytywać serwer. Ustaw sobie timer co jakiś czas - kilka/naście/dziesiąt sekund i sprawdzaj, czy coś się zmieniło.

W zależności od ilości userów, możesz albo pobierać tylko zmiany, albo po prostu całą aktualną listę.

0

Czy jak będzie zalogowanych np 1000 użytkowników to bardzo będzie obciążać serwer ?

0

No to może być problem, odpytywanie co chwila serwera o setki/tysiące użytkowników, zwłaszcza jeśli chcesz mieć swoją aplikację/stronę jednocześnie otwartą w wielu miejscach. Dlatego znacznie lepszą opcją jest to, co wcześniej sugerował @Markuz, czyli odwrócenie sposobu komunikacji. Nie strona odpytuje w kółko serwer, ale serwer powiadamia stronę o zmianach w chwili, w której one mają miejsce.

0

Okej dziekuje za pomoc ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1