【Bug】ERROR ResizeObserver loop completed with undelivered notifications.

【Bug】ERROR ResizeObserver loop completed with undelivered notifications.

报错如下:

bash 复制代码
ERROR
ResizeObserver loop completed with undelivered notifications.
    at handleError (webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:299:58)
    at eval (webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:318:7)


报错的原因:在页面绘制的时候,页面突然发生调整大小的事件,导致了样式和布局都需要重新评估,这个调整大小导致的布局变化,将延迟到下一帧来绘制。

解决方案:
在App.vue文件中添加以下代码:

bash 复制代码
<script >
// 解决ERROR ResizeObserver loop completed with undelivered notifications.

//问题的

const debounce = (fn, delay) => {
  let timer = null;

  return function () {
    let context = this;

    let args = arguments;

    clearTimeout(timer);

    timer = setTimeout(function () {
      fn.apply(context, args);
    }, delay);
  };
};

// 解决ERROR ResizeObserver loop completed with undelivered notifications.

const _ResizeObserver = window.ResizeObserver;

window.ResizeObserver = class ResizeObserver extends _ResizeObserver {
  constructor(callback) {
    callback = debounce(callback, 16);

    super(callback);
  }
};
</script>

下面是对这个代码的解释:

首先,debounce函数用于限制一个函数的执行频率,确保在一定时间间隔内只执行一次。它接受两个参数,一个是要执行的函数fn,另一个是延迟时间delay。函数内部使用setTimeout来实现延迟执行,每次调用时会清除之前的定时器,然后设置一个新的定时器来延迟执行目标函数。

接下来,代码对window.ResizeObserver进行了扩展。它将原始的ResizeObserver保存为_ResizeObserver,然后定义了一个新的ResizeObserver类,重写了其构造函数。在新的构造函数中,传入的回调函数被用debounce函数处理,确保回调函数在16毫秒的间隔内执行一次。这样做是为了限制ResizeObserver的回调频率,以避免过多的触发,提高性能。

这段代码实现了对ResizeObserver的改写,通过限制回调函数的执行频率来优化性能。

通过调整回调频率能解决上面讲解的问题报错原因。

相关推荐
有意义7 分钟前
现代 React 路由实践指南
前端·vue.js·react.js
儒雅永缘26 分钟前
Solidworks练习39-拉伸、拉伸切
笔记·学习
来两个炸鸡腿26 分钟前
【Datawhale组队学习202601】Base-NLP task01 注意力机制与Transformer
学习·自然语言处理·transformer
am心34 分钟前
学习笔记-缓存&添加购物车
笔记·学习·缓存
北辰alk1 小时前
Vue 3 的 Proxy 革命:为什么必须放弃 defineProperty?
vue.js
JosieBook1 小时前
【Vue】10 Vue技术——Vue 中的数据代理详解
javascript·vue.js·ecmascript
一只小阿乐1 小时前
vue-web端网站 滑动进行分页
前端·javascript·vue.js·vue·分页
Engineer邓祥浩1 小时前
设计模式学习(10) 23-8 装饰者模式
python·学习·设计模式
Errorbot1 小时前
F570四轴飞行器学习笔记
笔记·学习·无人机
GISer_Jing1 小时前
AI学习资源总结:免费开放,入门至深入,持续更新
人工智能·学习·设计模式·prompt·aigc