我有兴趣MutationObserver用于检测某个 HTML 元素是否添加到 HTML 页面中的任何位置。例如,我会说我想检测是否<li>在 DOM 中的任何位置添加了any 。
MutationObserver到目前为止,我看到的所有示例都只检测节点是否添加到特定容器中。例如:
一些 HTML
<body>
  ...
  <ul id='my-list'></ul>
  ...
</body>
MutationObserver 定义
var container = document.querySelector('ul#my-list');
var observer = new MutationObserver(function(mutations){
  // Do something here
});
observer.observe(container, {
  childList: true,
  attributes: true,
  characterData: true,
  subtree: true,
  attributeOldValue: true,
  characterDataOldValue: true
});
所以在这个例子中,MutationObserveris 设置为观察一个非常确定的容器 ( ul#my-list) 以查看是否有任何<li>'s 附加到它。
如果我想不那么具体,并<li>像这样在整个 HTML 正文中观察's是否有问题:
var container = document.querySelector('body');
我知道它适用于我为自己设置的基本示例......但是不建议这样做吗?这会导致性能不佳吗?如果是这样,我将如何检测和衡量该性能问题?
我想可能有一个原因,所有MutationObserver示例都针对其目标容器如此具体……但我不确定。