idle handling - treat the window being hidden as idle, even if the idle time wasn't reached

This commit is contained in:
Jon Atkins 2013-06-15 19:29:16 +01:00
parent 3d324a8730
commit 0b1957464b
2 changed files with 14 additions and 1 deletions

View File

@ -1,6 +1,7 @@
// IDLE HANDLING /////////////////////////////////////////////////////
window.idleTime = 0; // in seconds
window.isHidden = false;
var IDLE_POLL_TIME = 10;
@ -40,6 +41,18 @@ $('body').keypress(idleReset);
$('body').mousemove(idleMouseMove);
window.isIdle = function() {
if (window.idleTime < window.REFRESH) {
// if idle for less than the refresh time ignore 'hidden' state - likely initial page load in the background
return false;
}
var hidden = (document.hidden || document.webkitHidden || document.mozHidden || document.msHidden);
if (hidden) {
// window hidden - force an idle state even if below the idle time limit
return true;
}
// otherwise use the idle time limit
return window.idleTime >= MAX_IDLE_TIME;
}

View File

@ -120,7 +120,7 @@ window.requests._callOnRefreshFunctions = function() {
startRefreshTimeout();
if(isIdle()) {
console.log('user has been idle for ' + idleTime + ' seconds. Skipping refresh.');
console.log('user has been idle for ' + idleTime + ' seconds, or window hidden. Skipping refresh.');
renderUpdateStatus();
return;
}