当为单个元素的childList更改触发mutationObserver时,可以安全地假定该元素已完全解析吗?

时间:2018-12-10 16:46:43

标签: javascript dom custom-element mutation-observers native-web-component

我有一个自定义元素<my-el>,在结构上与此类似(纯静态,服务器渲染的HTML):

<my-el>
  <div>a</div>
  <div>b</div>
  <div>c</div>
  <div>d</div>
</my-el>

Since Chrome does not guarantee child element availability in the connectedCallback of custom elements,我使用的是HTMLParsedElement,它使用以下步骤基本上延迟了自定义元素的初始化:

  1. 测试元素(或任何祖先元素)是否具有nextSibling(在这种情况下,解析器可能已通过my-el),或者是否已达到DOMContentLoaded(又名{{ 1}})。
  2. 如果以上都不是,请在document.readyState !== 'loading'上设置MutationObserver,以重新检查上述条件。

概述的策略当前仍然存在的问题是,childList可能在HTML可用时被触发:

MutationObserver

甚至是这个

<my-el>
  <div>a</div>
  <div>b</div>
</my-el>

在这些情况下,MutationObserver会被触发多次,并且处理程序无法知道何时实际到达<my-el> <div>a</div> </my-el> 的末尾。

问题:有人知道包装所有内部</my-el>元素是否可以解决此问题:

div

或者换句话说,当突变观察者触发该结构时,我可以可靠地假定包装子div包括其所有后代节点都是完全可用的吗?

0 个答案:

没有答案