我正在构建一个模板引擎。作为缓存机制的一种形式,我想保留一个包含模板树的
DocumentFragment
节点,我将在其上调用.cloneNode(true)
,然后将参数替换到克隆树中。我需要做的一件事是在将参数渲染到模板中时定位替换点。
但是有一个问题。如果我在原始树中定位替换点,这在克隆树中将毫无用处,因为节点标识在克隆后会有所不同。另一方面,遍历整棵克隆树似乎很浪费。
我想我可以为每个替换点计算一个子元素索引列表,然后使用这些索引遍历克隆树,但这似乎有点麻烦。理想情况下,我希望有一个
WeakMap
将选择的节点从原始树映射到它们的克隆节点。
有没有一种方便的方法来定位节点的克隆对应物,或者我是否必须使用索引列表?