2010-07-09 28 views
5

Czy istnieje sposób na stwierdzenie, czy użytkownik na mojej stronie internetowej opuścił (tj. Połączenie zrzucone, nawigacja itd.) W czasie rzeczywistym?Jak mogę sprawdzić, czy użytkownik opuścił moją witrynę internetową?

buduję swoją stronę WWW ROR i chce zainicjować zdarzenie, jak tylko użytkownik opuszcza moją stronę z jakiegokolwiek powodu (na przykład związku, nawigacyjnych od domeny, etc.)

Dzięki z góry za wszelką pomoc.

+0

Co zrobić, jeśli użytkownik odchodzi od swojego komputera? – SLaks

+0

@SLaks: JavaScript, rozliczanie przez pięć lub dziesięć minut na stronie, a następnie użyj AJAX, aby uzyskać informacje z powrotem do serwera. (Edycja: Oczywiście nie będzie to oznaczało, że tylko użytkownik pozostaje na tej samej stronie, ale pokazuję, że jest taka możliwość!) –

Odpowiedz

6

Nie, nie ma.

Najlepsze co możesz zrobić, to wysłać żądanie AJAX co X sekund (być może tylko wtedy, gdy użytkownik poruszy myszą). Jeśli serwer nie otrzyma żadnych żądań przez 2X sekundy, załóż, że użytkownik odszedł.

0

Wszystko, o czym mogę pomyśleć to zdarzenie JavaScript onunload wydarzenie w twojej etykiecie ciała ... Nie wiem, jak to jest możliwe, ale teoretycznie możesz użyć tego połączenia AJAX, aby wysłać informacje o zbliżającym się rozłączeniu.

Oczywiście, jeśli proces przeglądarki zostanie po prostu zabity, to nie zadziała.

I nie jestem pewien, czy Rails ma jakąś unikalną magię, która robi to samo (z wyjątkiem lepszego).

+0

To nie zadziała, jeśli użytkownik utraci połączenie. – SLaks

+0

@SLaks: Prawda. Myślę, że twoje podejście do proaktywnego wysyłania informacji o biciu serca jest lepsze. –

2

Można zrobić jakiś wniosek w tej funkcji:

$(window).bind('beforeunload', function(){ 
    // there 
}); 

wysłać kilka Ajax lub coś powiedzieć serwerowi, że użytkownik opuszcza stronę, ale to nie jest dobry pomysł. W Google Analytics i innych usługach statystycznych możesz już sprawdzić, jak długo użytkownik pozostaje na Twojej stronie.

Powiązane problemy