MutationRecord.addedNodes节点列表中返回的节点数量(MutationObserver)

3
MutationRecord.addedNodes方法返回在我的文档中检测到的添加节点的NodeList。当我使用obj.appendChild()方法时,MutationObserver会检测并将此一个节点返回为MutationRecord.addedNodes中的nodelist[node]。当我在循环中使用.appendChild()时,MutationObserver会根据循环次数触发相同数量的次数。
我想知道是否存在一种情况,MutationObserver会同时检测到多个节点的添加并仅触发一次,并将这些节点作为一个nodelist [node,node,node,...]返回到MutationRecord.addedNodes中?
1个回答

2
根据规范,一个appendChild对应一个单节点的addedNodes数组。
在初始页面加载时,addedNodes通常包含许多节点。如果通过insertAdjacentHTMLdocument.write.innerHTML.outerHTML或具有多个节点的DocumentFragment等方式一次性插入了许多节点,则自然会包含许多节点。

换句话说,没有办法控制mutationObserver本身的行为吗?(假设我们不允许重构插入节点的代码部分。) - Pacerier
看了链接规范中的步骤5,我猜想你需要影响复合微任务调度以避免合并。但我不知道该如何实现。 - wOxxOm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接