我有一个包含数百个“磁贴”的大页面,悬停在每个磁贴上会显示一个“弹出窗口”。Flyout 将包含比 Tile 更多的信息(和标记)。
由于 Flyouts 最初不显示,最简单的实现是display: none;
在 Flyouts 上设置,然后在 Tile 悬停时切换。
但是,我担心这种方法,因为这意味着 DOM 仍将包含所有 Flyout。我反复听说大型 DOM 会对浏览器的性能产生重大影响,尤其是移动浏览器。
因此,我还考虑了另一种方法:detach()
对 DOM 中的所有 Flyout 使用 JavaScript(在页面加载时)。然后,当 Tiles 悬停时,Flyout 将重新附加。这提出了更高级别的复杂性,但页面性能至关重要。
总结一下我的问题:
display: none;
和detach
ed 元素之间有性能差异吗?
例如,如果页面有动画,那么大的(未显示的)DOM 会导致动画比纤细的 DOM 更不稳定吗?