我想知道以下两种情况是否有区别:
1. 显示10,000个表格行。
2. 使用display:none隐藏10,000个表格行。
我想了解的是,如果页面上所有10,000行都可见,是否会导致页面滚动出现延迟?
但是,如果我将其中的9,000个行隐藏起来,这能减少页面滞后吗?谢谢。
我想了解的是,如果页面上所有10,000行都可见,是否会导致页面滚动出现延迟?
但是,如果我将其中的9,000个行隐藏起来,这能减少页面滞后吗?谢谢。
display: none;
可以使浏览器减少一些工作量。display: none;
的子树,从而在布局和绘制步骤中需要做更少的工作。非常好的问题!它不是太宽泛,也没有被讨论得足够多。我正在进行研究,基于lazy-loading问题和与Twitter和Reddit feeds等其他网站的交叉引用。
Lighthouse会标记DOM树具有以下特点:
例如,我发现Reddit的分数惨淡的26。
"Avoid an excessive DOM size 1,456 elements"被列为推荐措施之一。
Reddit.com:Lighthouse显示:
DOM过大会增加内存使用量、导致更长的样式计算,并且产生昂贵的布局回流。了解更多信息。React考虑如果您正在渲染许多重复元素的页面,则使用类似于
react-window
这样的“窗口化”库来最小化创建的DOM节点数量。详细了解。此外,如果您使用Effect hook来提高运行时性能,则应仅在特定依赖项更改时跳过效果,并使用shouldComponentUpdate、PureComponent或React.memo来最小化不必要的重新呈现。
我刚遇到这个问题,想要发表我的看法