【问题标题】:Number of nodes returned in MutationRecord.addedNodes nodelist (mutationObserver)MutationRecord. addedNodes 节点列表(mutationObserver)中返回的节点数
【发布时间】:2016-12-15 07:48:01
【问题描述】:

MutationRecord.addedNodes 返回 NodeList,其中节点检测为已添加到我的文档中。当我使用 obj.appendChild() 方法时,mutationObserver 会检测到它并将 MutationRecord.addedNodes 中的这个 ONE 节点作为节点列表 [node] 返回。当我在循环中使用 .appendChild() 时,mutationObserver 触发的次数与循环次数一样多。

我只是想知道是否有任何情况下,mutationOvserver 会检测到同时添加的多个节点并触发 ONCE 并将 MutationRecord.addedNodes 中的这些节点返回为一个节点列表 [node,node,node,...]?

【问题讨论】:

    标签: javascript dom appendchild mutation-observers


    【解决方案1】:

    the spec判断,一个appendChild对应一个单节点addedNodes数组。

    addedNodes 通常在初始页面加载期间包含许多节点,当然,如果许多节点是由 js 代码通过insertAdjacentHTMLdocument.write.innerHTML.outerHTML 在一次操作中插入的,或 DocumentFragment 有许多节点。

    【讨论】:

    • 也就是说没有办法控制mutationObserver本身的行为? (假设我们不允许重构完成节点插入的代码部分。)
    • 查看链接规范中的step 5,我认为您必须影响复合微任务调度以避免合并。我有关于如何的节点想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2020-06-25
    • 2016-01-17
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多