Mutation Observe
Mutation Observer API 用来监视 DOM 变动。DOM 的任何变动,比如节点的增减、属性的变动、文本内容的变动,这个 API 都可以得到通知.与事件有本质的区别:事件是同步出发,DOM改变立即会出发相应事件,而Mutation Observe 是异步触发,DOM改变不会立即触发,而是会等到所有DOM操作都结束才触发。这样可以应付DOM频繁改变的特点。
**Mutation Observe**的特点
- Mutation Observe是微任务,优先级低于process.nextTick>promise>Mutatuion Observe
- 它把 DOM 变动记录封装成一个数组进行处理,而不是一条条地个别处理 DOM 变动
- 它即可以观察发生在 DOM 节点的所有变动,也可以观察某一类变动
Mutation Observe 的用法
创建MutationObserve实例需要传入一个回调函数,每当有dom变化时,执行该函数。函数的第一个参数时变动数组,每个变化都会提供它的类型和已发生的变化
var mutationObserver = new MutationObserver(function(mutations) {
mutations.forEach(mutation => console.log(mutation))
});
MutationObserve对象有三个方法:
- observe — 启动监听
- disconnect — 用来停止观察