How do I detect a user leaving the site?

  • Thread starter Thread starter Andy
  • Start date Start date
A

Andy

As per the question really.

Not trying to stop them leaving, but just detect WHEN they leave the site
 
You can set up JavaScript on a page, but you will have to make it elaborate
enough to distinguish page unload from page unload to another site. This is
how sites that try to get you to download trojans work, popping up a modal
popup when the user leaves a page, except they do it on any unload.

Storing that they have left will require an AJAX like solution, as you will
have to have the JavaScript contact the server.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

Subscribe to my blog
http://gregorybeamer.spaces.live.com/lists/feed.rss

or just read it:
http://gregorybeamer.spaces.live.com/

*************************************************
| Think outside the box!
|
*************************************************
 
Due to disconnected nature of the Web applications it's a bit hard (and
always not reliable).

First you need to define for yourself "exit time".
Then you need to define precision. For example "We need 1 hour timeframe".
Meaning that if user left 8:50 and we detected it by 9:00 then we fine... .
-------------------------------------------------
Here are some thing you can test if they going to work for you.

1. You can get last time user has requested anything from your site. And
call it your "exit time". Basically update exit time everytime user had send
a request to aspx. At the end when user closes the browser you will have
last "exit time".

Problem: if user requested page "article.aspx" and then sitting there
reading it for 30 minutes and then closes browser you will have exit time 30
minutes before user actually closed the browser...

But this comes does to definition of what is "exit time".

2. To reduce lag time specified in #1 you can have a JavaScript that would
refresh a tiny image on your page every minute. then if user looked at your
page for 30 minutes you will have exit time within one minute range...

But this comes down to the precision... And obviously will have a problem if
JavaScript is disabled.

Check out this on how to do that with an image...
http://www.codeproject.com/KB/aspnet/SessionForever.aspx
 
there is no surefire way. the most common is a lightweight ajax call on page
unload (which will fire on every page referesh), then run a timer on the
server to detect that the user did not return to the site. you can also use a
session timeout for this (20 minutes of no site hits).

-- bruce (sqlwork.com)
 
Back
Top