A simple AMD component which fires Backbone Events if the user is idle.
- Very small
- Works across tabs using localStorage
- Unopinionated events
Backbone (and Underscore)
bower install idle-monitor
This is an AMD component, and it is designed to be loaded with things like RequireJS or Almond. This code simply fires events -- it's up to the consumer to react to these events.
// An example AMD module
define(function(require) {
// Pull in the idle-monitor
var IdleMonitor = require("idle-monitor");
// Initialize a new one
idleMonitor = new IdleMonitor();
// Starting will poll for idleness
idleMonitor.start({
checkIntervalSecs : 10,
events : {
document : "click keyup"
},
warningSecs : 60 * 14,
timeoutSecs : 60 * 15
});
// Do something when the user has been idle for awhile
idleMonitor.on("warning", function() {
console.log("Wow -- you're not doing anything.");
});
// Fires when user fires a non-idle event
idleMonitor.on("action", function() {
console.log("Oh hi. You're here.");
});
// You've had your warning, you're TOO idle
idleMonitor.on("timeout", function() {
console.log("Ok... we're going to log you out");
});
// Stop will stop polling
idleMonitor.stop();
});
How often the idle-monitor should poll. default: 10
A mapping of jQuery selectors and events which "reset" the idleness.
default:
events : {
document : "click keyup"
}
Number of seconds before trigger a warning event. default: 60 * 14
Number of seconds before triggering a timeout event. default: 60 * 15