MutationObserver

MutationObserver 观察器
提供了监视对DOM树所做更改的能力
var observer = new MutationObserver((mutationList, observer)=> {
  mutationList 监听列表
  mutationList[0] mutation.type config中的属性
}); 回调函数
// config 观察器配置 {attributes: true, childList: true, subtree: tree} 对dom属性变化观察,对dom子元素的监听等
config设置
childList :设置true,表示观察目标子节点的变化,比如添加或者删除目标子节点,不包括修改子节点以及子节点后代的变化
attributes:设置true,表示观察目标属性的改变
characterData:设置true,表示观察目标数据的改变
subtree:设置为true,目标以及目标的后代改变都会观察
attributeOldValue:如果属性为true或者省略,则相当于设置为true,表示需要记录改变前的目标属性值,设置了attributeOldValue可以省略attributes设置
characterDataOldValue:如果characterData为true或省略,则相当于设置为true,表示需要记录改变之前的目标数据,设置了characterDataOldValue可以省略characterData设置
attributeFilter:如果不是所有的属性改变都需要被观察,并且attributes设置为true或者被忽略,那么设置一个需要观察的属性本地名称(不需要命名空间)的列表 观察一个名称为这个key 对应的 value 的属性进行观察 是个数组 []
observer.observe(dom, config)
observer.disconnect() // 停止观察
MutationObserver的callback回调函数是异步的(推入队列中),只有在全部DOM操作完成之后才会调用callback。(一次队列中只允许存在一次)(要三次牛肉面只上来一碗)

posted @ 2020-11-07 00:01  zctest  阅读(159)  评论(0)    收藏  举报