我的应用程序中的滚动事件附加了一些繁重的功能。为了限制它执行的频率,我使用简单的去抖方法,如下所示:
var timeout;
document.addEventListener("scroll", function () {
clearTimeout(timeout);
timeout = setTimeout(function () {
// some heavy code
}, 200);
});
有更好的方法吗?每次事件触发时,setTimeout都不会调得太重吗?
编辑: 最让我担心的是内存使用情况 - 我认为每个setTimeout都会分配一些内存。这是来自chrome时间轴的内存分配(来自这个小提琴:http://jsfiddle.net/hky0oekm/):