1

我在我的应用程序中为滚动事件附加了一些繁重的功能。为了限制它的执行频率,我使用了这样的简单去抖动方法:

var timeout;
document.addEventListener("scroll", function () {
    clearTimeout(timeout);
    timeout = setTimeout(function () {
        // some heavy code
    }, 200);
});

有一个更好的方法吗?每次事件触发时,setTimeout 本身是否太重而无法调用?

编辑:我最关心的是内存使用 - 我认为每个 setTimeout 都在分配一些。这是来自 chrome 时间轴的内存分配(来自这个小提琴:http: //jsfiddle.net/hky0oekm/):

在此处输入图像描述

4

0 回答 0