Eleganckie rozwiązanie liczenia czasu przebywania na stronie

0

Jak uważacie jakie jest najlepsze rozwiązanie liczenia czasu przebywania użytkownika na stronie. Zakładamy że czas ten jest ten liczony anonimowo, czyli nie mamy bazy danych użytkowników, a jedynie chcemy uzyskać czas dla celów statystycznych.

Co zrobić?

  1. ustawić sesje z czasem przebywania dla każdego wchodzącego? Co wtedy z wygaszaniem sesji, jaki to ma wplyw na wydajność serwera?
  2. a może wysyłać ciasteczka z czasem różnych akcji i na tej podstawie wnioskować czas przebywania
  3. a może wykorzystywać bazę danych, czyli budować rekordy na dany dzień z datą wchodzącego
  4. a może jakieś inne pomysły?

Zależy mi na tym by było to najbardziej optymalne rozwiązanie. Zdaje sobie sprawę że to tez sporo zalezy od liczby użytkowników na stronie. Załóżmy jednak ze to kod do wielu stron i musi być on elastyczny. Oczywiście mówimy tu o wykorzystywaniu ajaxa i innych pomocnych rozwiązań z javasrciptem.

0

to powinno być zrobione na websocketach czyli najprościej na node.js

0
tymek42 napisał(a):

Jak uważacie jakie jest najlepsze rozwiązanie liczenia czasu przebywania użytkownika na stronie. Zakładamy że czas ten jest ten liczony anonimowo, czyli nie mamy bazy danych użytkowników, a jedynie chcemy uzyskać czas dla celów statystycznych.

Co zrobić?

  1. ustawić sesje z czasem przebywania dla każdego wchodzącego? Co wtedy z wygaszaniem sesji, jaki to ma wplyw na wydajność serwera?
  2. a może wysyłać ciasteczka z czasem różnych akcji i na tej podstawie wnioskować czas przebywania
  3. a może wykorzystywać bazę danych, czyli budować rekordy na dany dzień z datą wchodzącego
  4. a może jakieś inne pomysły?

Zależy mi na tym by było to najbardziej optymalne rozwiązanie. Zdaje sobie sprawę że to tez sporo zalezy od liczby użytkowników na stronie. Załóżmy jednak ze to kod do wielu stron i musi być on elastyczny. Oczywiście mówimy tu o wykorzystywaniu ajaxa i innych pomocnych rozwiązań z javasrciptem.

Pierwsze pytanie - jak chcesz wiedzieć co robi user, to załatw sobie Google Tag Manager.

Jeśli faktycznie chcesz pisać coś swojego to:

Na backendzie i tak tego nie sprawdzisz, bo Twój server jedyne co może zrobić to reagować na requesty. Taki backend nie wie czy ja załaduję stronę i ją od razu wyłączę, czy otworzę i zostawię na 2h przed kompem albo na innej karcie.

Najlepiej byłoby mieć malutkiego JS'a na stronie który próbuje jakoś ogarniać czy user "na niej jest czy nie", np czy nie jest na innej karcie. Pytanie też czy chcesz wiedzieć czy user np odszedł od kompa zostawiając otwartą stronę.

0

@TomRiddle Chcę coś swojego. Już mam i w zasadzie jedyne co mi brakuje to właśnie jeszcze czasu odwiedzin i odrzuceń. Stąd mój problem. Pierw myślałem że uruchomię po kilku sekundach setTimeout na javasripcie i uruchomie ajaxa. Tak bym widział że ktoś jest dłużej niż np. 10 sekund co dało by mi pewną odpowiedź, później jednak pomyślałem ze mogą być użytkownicy którzy w 3,4 sekundy przejda na inna zakładkę, co jednak nie musi się wiązać z odrzuceniem strony. Problemem jest tutaj to ze bym musiał identyfikowac użytkowników i zapisywać czy dana osoba już weszła i chcę korzystać ze strony. Ja tymczasem buduje system bez ciasteczek szpiegujących, zeby tych głupich komunikatow nie pokazywać, a ciasteczka gdzie pokazują się daty użytkownika już taki komunikat raczej wymagają. Pytanie teraz czy jeżeli bym taka dane zapisywał jako sesje w php to nie spowolni to strony. Nie będzie problemem z tymi komunikatami, gdy pewnie już wejdzie te cały e-privacy. Teraz jednak chcę coś na chwile zmodzić.

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