You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ResizeObserver实现窗口尺寸变化事件的监听

方案可行性说明

这个重构方案完全可行。
ResizeObserver本身设计用于监听DOM元素的尺寸变化,窗口大小变化时,页面根元素document.documentElement的尺寸会同步变化,只要监听该元素的尺寸变动就能等价实现窗口resize事件的监听效果。
和你现在用的window.resize事件相比,ResizeObserver默认在渲染周期的回调阶段触发,不会像原生resize事件那样高频触发,大部分场景下不需要额外做防抖处理,性能表现更优。

重构后的实现代码
// 实例化ResizeObserver
const resizeObserver = new ResizeObserver(() => {
  // 此处替换为你原来的resize事件回调逻辑
  console.log('resize')
})
// 监听页面根元素尺寸变动,等价于监听窗口大小变化
resizeObserver.observe(document.documentElement)
注意事项
  • 页面卸载或者不需要监听时,要主动调用resizeObserver.disconnect()取消监听,避免内存泄漏
  • 现代主流浏览器全版本支持ResizeObserver,只有需要兼容IE11等极老旧浏览器时才需要额外引入polyfill
  • 如果你的业务场景只需要监听窗口大小变化,两种实现都可以满足需求,如果你后续有监听多个自定义元素尺寸变化的需求,ResizeObserver的适配性会更强

内容的提问来源于stack exchange,提问作者Luke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:24:04