Skip to content

Instantly share code, notes, and snippets.

@raininglemons
raininglemons / index.html
Created August 26, 2015 15:51
Appcache manifest becomes indefinitely cached after a "clear cache" in FireFox 40.0.2
<html manifest="/manifest.appcache" ><head>
<title>test</title>
</head>
<body>
<h1>Rev. 6</h1>
</body>
</html>
@raininglemons
raininglemons / Idler.min.js
Created August 24, 2015 20:14
Idler, minified to 1.53 KB, or just 613 bytes with Gzip compression.
!function(){"use strict";var e=function(n,i,t){t=t||6e4,this.onIdle=n,this.onInteraction=i,this.idleTime=t,this.isIdle=!1,e.initInterval(),e.instances.push(this)};e.getTime=function(){return+new Date},e.instances=[],e.intervalTimer=null,e.lastInteraction=e.getTime(),e.prototype.destroy=function(n){e.instances.splice(e.instances.indexOf(this),1),0==e.instances.length&&(clearInterval(e.intervalTimer),e.intervalTimer=null)},e.prototype.setIdle=function(){this.isIdle=!0,this.onIdle()},e.setIdle=function(){e.forEach(function(e){e.setIdle()})},e.reset=function(){e.lastInteraction=e.getTime(),e.forEach(function(e){e.isIdle&&(e.isIdle=!1,e.onInteraction())})},e.handleTabChange=function(n){n?e.setIdle():e.reset()},e.forEach=function(n){for(var i=0;i<e.instances.length;i++)try{n(e.instances[i])}catch(t){console.error(t)}},e.update=function(){var n=e.getTime();e.forEach(function(i){i.isIdle||i.idleTime+e.lastInteraction<n&&i.setIdle()})},e.initInterval=function(){null===e.intervalTimer&&(e.intervalTimer=setInterval(e.up
@raininglemons
raininglemons / Idler.js
Created August 24, 2015 19:44
Idler, micro JS lib for binding callbacks to user interactivity and idling.
/**
* Idler
*
* API for binding to user interaction. Created by passing two callbacks, one
* to run on idle and another to run on user interaction resumed. Idler optionally
* takes a third argument, idleTime which defines the period of inactivity required
* to declare a user idled (in ms).
*
* Example usage:
*