Limita a execução de uma função a no máximo uma vez por intervalo de tempo.
function throttle(fn, intervalo = 200) {
let ultimo = 0;
return (...args) => {
const agora = Date.now();
if (agora - ultimo >= intervalo) {
ultimo = agora;
fn.apply(this, args);
}
};
}
// Uso no scroll:
const onScroll = throttle(() => {
console.log('scrollY:', window.scrollY);
}, 100);
window.addEventListener('scroll', onScroll);