![]() |
![]() |
-Gość- |
![]()
Post
#1
|
Goście ![]() |
Witam. Robię coś w rodzaju poczekalni, gdzie będzie wyświetlana lista użytkowników przeglądających daną stronę. Problem rodzi się w punkcie 4, wyjaśnię po przedstawieniu działania mojego systemu.
1. użytkownik wchodzi na stronę, jest dodawany do listy 2. jest ustawiony interval w javascript, który aktualizuje czas, kiedy ostatnio był widziany użytkownik 3. podczas tego intervala przy okazji kasowane są rekordy, gdzie czas nie został zaktualizowany od x sekund 4. w odpowiedzi serwer podaje, jakich użytkowników należy dodać i usunąć z listy w przeglądarce co do punktu 4, serwer miałby zwrócić użytkowników, których rekordy zostały usunięte poleceniem DELETE. tu rodzi się problem, bo niektórzy użytkownicy zostaną usunięci w jednym zapytaniu, inni - w drugim, od innego użytkownika. tak samo z dodawaniem userów - temu, komu jako pierwszemu wykona się interval, dodadzą mu się użytkownicy, którzy weszli do poczekalni. więc tu rodzi się myśl, aby po prostu od nowa listować użytkowników za każdym wywołaniem intervala. ale to już wydaje się nieoptymalne da się to zrobić jakoś inaczej, by użytkownicy na bieżąco byli aktualizowani, a mniejszym kosztem transferu? Przy okazji, czy ten system jest ogólnie w miarę optymalny? Może istnieją lepsze sposoby? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Więc zapewne masz w bazie zapisanych użytkowników, którzy obecnie przebywają w poczekalni, tak? Zamiast zwracać to co zostało usunięte poprzez delete, czyścisz całą listę poczekalni i pobierasz Ajaxem z bazy aktualną listę (oczywiście jako dodatkowy warunek możesz sprawdzać czas - jakby nie zdążyło usunąć rekordu z bazy przed sprawdzeniem).
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 21:13 |