Background timers

by juberti

HTML

<button onclick="start()">▶</button>

JavaScript

var lastTime;
var interval = null;
function start() {
  if (interval) {
    clearInterval(interval);
    interval = null;
    return;
  }
  
  lastTime = performance.now();
  interval = setInterval(() => { 
    var now = performance.now();
    var et = now - lastTime;
    console.log('et: ' + et + ', hidden: ' + document.hidden);
    lastTime = now;
  }, 250);
}

document.body.onblur = () => { console.log('blur'); }
document.body.onfocus = () => { console.log('focus'); }