javascript - 降低 Javascript 事件轮询的频率

标签 javascript event-handling dom-events onscroll onresize

如何降低 Javascript 事件轮询的频率?我关心的事件是 onResizeonScroll。当有人调整浏览器大小或向下滚动时,这些事件可能每秒分别触发数十次。我希望这些事件每 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/

相关文章:

javascript - 在express中传递额外参数 - Node.JS

javascript - 使用非单例服务在兄弟组件之间共享数据

javascript - 在页面绘制之前运行 chrome 扩展内容脚本

javascript - 即使我可以监视其他方法,也无法监视事件处理程序

javascript - 如何传递 dojo.connect 中的元素

Java 事件监听与 AS3 的比较

javascript - 当文本框处于焦点上时,如何听取向下箭头按下的声音

javascript - PDF 表单日期验证

javascript - 代理事件目标上的 addEventListener

javascript - 使功能同步工作(等待本地事件被触发)