我希望在页面的多个位置呈现“相同”的 HTML 元素。这个元素是脚本/动画的,各种渲染需要保持同步。
我考虑过的解决方案包括:
- 将元素的副本放在多个位置并更新所有位置。这是我试图避免的。
- 将元素的副本放在多个位置。更新其中一个副本,并使用突变事件来捕获这些更改并针对其他副本重放它们。似乎工作量很大。
- 使用影子 DOM。我对这个替代方案寄予厚望,它最初似乎是可能的,使用“插入点”,它允许这里的 DOM 子树虚拟地放置在那里的 DOM 子树中。
我还没有测试过Chrome 25 中提供的最后一个替代方案。W3C 规范说:
值得特别考虑的一种情况是插入点是另一个影子主机的子节点的情况......一个节点被分布到多个插入点的效果称为重投影。
但是之后...
尽管在重投影期间被分配到多个插入点,但由于重投影发生的约束,节点仍然只渲染一次:由于插入点仅在它们是影子主机的子节点时才受到重投影,因此它们是从未渲染。相反,阴影树被渲染在他们的位置。
影子 DOM 似乎有可能做我想做的事情并且值得测试,还是有其他推荐的方法?