User Inactivity
by shivkumarganesh
JavaScript
var MAX_INACTIVE_TIME = 20000,
POLL_THRESHOLD = 15000,
activityCount=0,
timerIdentifier,
intervalIdentifier;
// Setup timer for Inactivity Calculation
function startTimer() {
timerIdentifier = setTimeout(function() {
clearInterval(intervalIdentifier);
logout();
}, MAX_INACTIVE_TIME);
}
// Setup intervals within which check happens
function intervalTimer(){
intervalIdentifier = setInterval(function(){
if(activityCount>0){
activityCount=0;
keepAlive();
resetTimer();
}
},POLL_THRESHOLD);
}
// Call Session is Alive
function logout() {
console.log('LOGOUT');
}
// Call Keep Alive
function keepAlive(){
console.log('KEEP ALIVE');
resetTimer();
}
// Reset setup Timer
function resetTimer() {
clearTimeout(timerIdentifier);
startTimer();
}
// Update Activity Count
function updateActivityCount(){
console.log(activityCount)
return activityCount++;
}
// Setup listener for inactivity
function setupListener() {
document.addEventListener("mousemove", updateActivityCount, false);
document.addEventListener("mousedown", updateActivityCount, false);
document.addEventListener("keypress", updateActivityCount, false);
document.addEventListener("touchmove", updateActivityCount, false);
startTimer()
intervalTimer();
}
setupListener();