如何降低 Javascript 事件轮询的频率?我关心的事件是 onResize
和 onScroll
。当有人调整浏览器大小或向下滚动时,这些事件可能每秒分别触发数十次。我希望这些事件每 500 毫秒只发生一次,这样我就不必花费数小时来优化我的事件处理程序并确保它们不会泄漏内存。
最佳答案
var resizeTimeout;
window.onresize = function() {
if (resizeTimeout) {
clearTimeout(resizeTimeout);
}
resizeTimeout = setTimeout(function() {
// Do it!
}, 500);
});
这将在用户完成调整大小后约 500 毫秒触发 setTimeout()
函数。
onscroll
版本非常相似:)
关于javascript - 降低 Javascript 事件轮询的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4372759/