【发布时间】:2021-05-12 12:32:41
【问题描述】:
似乎ResizeObserver 最适合在您有一个实例管理许多元素的行为时使用(正如"ResizeObserver one vs multiple performance" 中的one of the sources 中指出的那样):
在 2 秒的宽度/高度动画期间观察 126 个 div 的大小。
所有元素都由单个 ResizeObserver 观察。
总观察时间:69ms
每个元素都由单独的 ResizeObserver 观察。
总观察时间:585ms
但是,据我所知,您只能为ResizeObserver 的实例真正指定一个行为,然后针对它所观察的任何元素运行该行为。 我应该如何观察具有不同行为的多个元素?据我所知,我可以:
- 使用
ResizeObserver的单个实例并在运行时确定应该对给定元素使用什么行为(这似乎不必要的复杂,而且我不知道比较元素引用在生产中的可靠性如何),或者 - 使用
ResizeObserver的多个实例,这会使行为更简单,但理论上会降低性能。
另外,使用多个ResizeObserver 实例的性能损失是否甚至是我应该担心的中小型规模?
【问题讨论】:
标签: javascript performance observers