On 2/20/07, Chris Carline <[EMAIL PROTECTED]> wrote:
On 2/20/07, J. Shirley <[EMAIL PROTECTED]> wrote:
> If you aren't doing any AJAX interactions, the simple approach is to
> add a JavaScript listener to the onload event that calls the following
> (untested) function:
>
> var activityTimer;
> function setActivityTimeout(time) {
>     if ( activityTimer ) clearTimeout(activityTimer);
>     activityTimer = window.setTimeout( function() {
>         alert("You have been logged out.");
>         document.location = "/";
>     }, time || 600);
> }
>
> On each page unload, this timer will be canceled.  If you do any AJAX
> loads that count as activity, simply call setActivityTimeout() on the
> initiation of the remote event.  And, of course, expire the session on
> the server to match whatever is your client side time out as well.

Why not simply add a meta refresh tag to the top of the template header?

e.g.:
<meta http-equiv="refresh" content="[% timeout_mins * 60 %];url=[%
c.uri_for('/logout') %]" />

_______________________________________________
List: [email protected]
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/


Chris,

The meta refresh is a good idea, although I avoid it because an
inadvertent escape cancels the timeout in some browsers (Firefox being
one).  This means if the user hits escape for whatever reason, the
feature is just disabled without warning; with a javascript method it
tends to be more consistent for the user.

-J

--
J. Shirley :: [EMAIL PROTECTED] :: Killing two stones with one bird...
http://www.toeat.com - http://code.toeat.com/~jshirley

_______________________________________________
List: [email protected]
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to