2010-07-09 23 views
5

C'è un modo per dire se un utente sul mio sito web è uscito (cioè la connessione è caduta, navigato via ecc.) In tempo reale?Come posso sapere se un utente ha lasciato il mio sito web

Sto costruendo un sito RoR e voglio iniziare un evento non appena un utente lascia il mio sito per qualsiasi motivo (ad esempio la connessione, la navigazione da dominio, ecc)

Grazie in anticipo per qualsiasi aiuto.

+0

Cosa succede se l'utente si allontana dal suo computer? – SLaks

+0

@SLaks: JavaScript, settimeout per circa cinque o dieci minuti su una pagina e quindi utilizzare AJAX per ottenere le informazioni sul server. (Modifica: Naturalmente questo non imporrà solo all'utente che rimane sulla stessa pagina da molto tempo, ma sto solo mostrando che c'è una possibilità!) –

risposta

6

No, non c'è.

Il meglio che puoi fare è inviare una richiesta AJAX ogni X secondi (forse solo se l'utente muove il mouse). Se il server non riceve richieste per 2X secondi, si supponga che l'utente abbia lasciato.

0

Tutto quello che posso pensare è l'evento JavaScript onunload nel tag del tuo corpo ... Non so quanto sia fattibile, ma in teoria si potrebbe avere che utilizzare una chiamata AJAX per inviare informazioni su una disconnessione imminente.

Ovviamente, se il processo del browser è appena terminato, non funzionerà.

E non sono sicuro che Rails abbia una magia unica che faccia questa stessa cosa (eccetto la migliore).

+0

Questo non funzionerà se l'utente perde la sua connessione. – SLaks

+0

@SLaks: vero. Immagino che il tuo approccio di invio proattivo di informazioni heartbeat sia migliore. –

2

È possibile fare qualche richiesta in questa funzione:

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

Invia un po 'di Ajax o qualcosa da dire al server che questo utente lascia il pagina, ma questo non è un buon idea. In Google Analytics e in altri servizi statistici puoi già vedere per quanto tempo l'utente rimane nella tua pagina.

Problemi correlati