Smol window.requestAnimationFrame
package.
var Microframe = reuqire('microframe')
var html = require('bel')
var microframe = Microframe()
html`
<input onkeydown=${onkeydown}>click me</button>
`
function onkeydown (e) {
var value = e.target.value
microframe(function () {
console.log('called at the start of a new frame', value)
})
}
Because holding on to event listeners longer than you should causes long frames. And long frames cause jank. You want silky smooth pages, so debounce and push all JS execution to the start of frames while clearing references ASAP.
Create a new instance.
Call the callback on the next frame. The last callback is called when called multiple times in a single frame.