2016-08-09 10 views
2

MutationRecord.addedNodes는 내 문서에 노드가 추가 된 노드 목록을 반환합니다. obj.appendChild() 메서드를 사용하면 mutationObserver가이를 감지하고 Nutelist [node]와 같이 MutationRecord.addedNodes에서이 ONE 노드를 반환합니다. 루프에서 .appendChild()를 사용할 때 mutationObserver는 루프 양만큼 여러 번 발생합니다.MutationRecord.addedNodes에서 반환 된 노드 수 nodelist (mutationObserver)

mutationOvserver가 둘 이상의 노드를 동시에 추가하고 ONCE를 감지하고 MutationRecord.addedNodes에서 해당 노드를 하나의 노드 목록 [node, node, node, ...]으로 반환하는 경우 어떤 것이 있는지 궁금합니다.

답변

2

the spec으로 판단하면, appendChild은 단일 노드 addedNodes 어레이에 해당합니다. 많은 노드가 많은 노드와 insertAdjacentHTML, 또는 document.write, 또는 .innerHTML, 또는 .outerHTML, 또는 DocumentFragment를 통해 한 번의 조작으로 JS 코드가 삽입 된 경우

addedNodes 보통 자연적으로, 초기 페이지로드하는 동안 많은 노드를 포함하고.

+0

즉, 'mutationObserver'자체의 동작을 제어 할 수있는 방법이 없습니까? (노드 삽입이 수행되는 코드 부분을 리팩터링 할 수 없다고 가정하십시오.) – Pacerier

+0

[5 단계] (https://www.w3.org/TR/dom/#queue-a-mutation -observer-compound-microtask)을 사용하면 결합을 피하기 위해 복합 마이크로 태스크 일정에 영향을 미쳐야한다고 생각합니다. 방법에 관한 노드 아이디어가 있습니다. – wOxxOm