Observer API(观察者API)释放了Web隐藏的超能力,以创建真正的响应式体验,从懒加载关键内容到非侵入式性能监控。
在检测变化方面非常方便,可以用来创建响应式应用。
有四种不同类型的观察者可以观察不同的东西——从DOM到浏览器性能。
MutationObserver
MutationObserver观察DOM树,监听DOM的变化。
1 | // 选择要观察突变的节点 |
当一个元素的属性、文本或内容发生变化时,我们会得到通知,同时也会监控子节点是否被添加或删除。
这对于调整DOM中元素的大小以及重置DOM值特别有用。
IntersectionObserver
IntersectionObserver观察一个DOM元素的可见性,监听其位置的变化。
1 | // 选择要观察突变的节点 |
这在基于目标元素的可见性和位置的懒惰加载和动画内容方面非常有用。
ResizeObserver
ResizeObserver观察元素的内容或边框,监听元素及其子元素的变化。
1 | // 选择要观察突变的节点 |
创建基于输入或触发器包装的动态内容时,此观察者非常重要。
PerformanceObserver
PerformanceObserver观察性能测量事件,监听新的性能条目。
1 | // 观察者的选项(观察哪些突变) |
这对于接收性能通知很有用,可以在空闲时间运行,而不与关键的渲染工作竞争。