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: Catalyst@lists.rawmode.org
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/

Reply via email to