我使用 ReactJs 函数renderToStaticMarkup来创建 HTML 标记。标记位于 App 中的另一个位置,作为其他 DOM 节点的innerHTML属性。由于我想防止图像和iframe重新渲染,我想进行比较,如果当前的innerHTML与它应该设置的不同。
if (!domNode.innerHTML !== newMarkup);
domNode.innerHTML = newMarkup;
}
出于某种原因,Reacts renderToStaticMarkup为图像创建 HTML 标记为:
<img src="https://placebeard.it/200x150" alt="" class="content-media-image-linked"/>
但 DOM innerHTML的值为
<img src="https://placebeard.it/200x150" alt="" class="content-media-image-linked">
所以基本上区别在于尾随/
(但这不需要是经验法则)
我想知道确定这两个 DOMString 是否代表同一个 DOM 节点的最有效/最快的方法是什么。
1.字符串比较
替换/删除所有出现的/>
2. 解析/转换为 DOMNodes
这是更安全的方法,但也更昂贵。我将不得不使用类似的东西document.createRange().createContextualFragment
(参见这篇文章),而不是使用该isEqualNode
方法。
有人有更好的建议吗?