diff --git a/limiter.js b/limiter.js index a7575789..ec35a80e 100644 --- a/limiter.js +++ b/limiter.js @@ -1,35 +1,35 @@ var FRAME_BUDGET = 16 // 60 frames per second = 1 call per 16 ms module.exports = function($window, render) { - var rAF = $window.requestAnimationFrame || $window.setTimeout - var cAF = $window.cancelAnimationFrame || $window.clearTimeout - - var last = 0 - var pending - - return function() { - var now = new Date() - - // First render, OR if the time since the last render is greater - // than the frame budget - // just immediately render - if(!last || now - last > FRAME_BUDGET) { - last = now; - - return render() - } - - // Redraw already pending, abort - if(pending) { - return - } - - // Schedule a redraw for the next tick - pending = rAF(function() { - render() - - last = new Date() - pending = null - }, FRAME_BUDGET - (now - last)) - } + var rAF = $window.requestAnimationFrame || $window.setTimeout + var cAF = $window.cancelAnimationFrame || $window.clearTimeout + + var last = 0 + var pending + + return function() { + var now = new Date() + + // First render, OR if the time since the last render is greater + // than the frame budget + // just immediately render + if(!last || now - last > FRAME_BUDGET) { + last = now; + + return render() + } + + // Redraw already pending, abort + if(pending) { + return + } + + // Schedule a redraw for the next tick + pending = rAF(function() { + render() + + last = new Date() + pending = null + }, FRAME_BUDGET - (now - last)) + } } diff --git a/mithril.js b/mithril.js index 17e2a7bd..b1338d35 100644 --- a/mithril.js +++ b/mithril.js @@ -578,37 +578,37 @@ var createRenderer = function($window) { var FRAME_BUDGET = 16 // 60 frames per second = 1 call per 16 ms var limiter = function($window, render) { - var rAF = $window.requestAnimationFrame || $window.setTimeout - var cAF = $window.cancelAnimationFrame || $window.clearTimeout - - var last = 0 - var pending - - return function() { - var now = new Date() - - // First render, OR if the time since the last render is greater - // than the frame budget - // just immediately render - if(!last || now - last > FRAME_BUDGET) { - last = now; - - return render() - } - - // Redraw already pending, abort - if(pending) { - return - } - - // Schedule a redraw for the next tick - pending = rAF(function() { - render() - - last = new Date() - pending = null - }, FRAME_BUDGET - (now - last)) - } + var rAF = $window.requestAnimationFrame || $window.setTimeout + var cAF = $window.cancelAnimationFrame || $window.clearTimeout + + var last = 0 + var pending + + return function() { + var now = new Date() + + // First render, OR if the time since the last render is greater + // than the frame budget + // just immediately render + if(!last || now - last > FRAME_BUDGET) { + last = now; + + return render() + } + + // Redraw already pending, abort + if(pending) { + return + } + + // Schedule a redraw for the next tick + pending = rAF(function() { + render() + + last = new Date() + pending = null + }, FRAME_BUDGET - (now - last)) + } } ;