Css Chrome v41+;显示的性能问题:无;在许多节点上

Css Chrome v41+;显示的性能问题:无;在许多节点上,css,google-chrome,Css,Google Chrome,我最近注意到,当应用display:none时,Chrome会呕吐到许多节点: 在上面的代码笔中,您可以看到切换display:none时的延迟在1000个元素上。如果您将1000到3000之间的数值进行碰撞并再次切换,则该选项卡将完全挂起。同样的代码在Safari中工作没有任何延迟,我90%确信这在Chrome中运行良好,直到上个月左右,所以我猜这是最近的Chrome bug。有没有其他人遇到过这种情况并找到了解决办法?(我有一个web应用程序功能,可以呈现3000多个元素,用CSS隐藏所有

我最近注意到,当应用
display:none时,Chrome会呕吐到许多节点:

在上面的代码笔中,您可以看到切换
display:none时的延迟在1000个元素上。如果您将1000到3000之间的数值进行碰撞并再次切换,则该选项卡将完全挂起。同样的代码在Safari中工作没有任何延迟,我90%确信这在Chrome中运行良好,直到上个月左右,所以我猜这是最近的Chrome bug。有没有其他人遇到过这种情况并找到了解决办法?(我有一个web应用程序功能,可以呈现3000多个元素,用CSS隐藏所有元素,然后用JS按需显示它们。目前该页面甚至无法加载。)

编辑:应该提到我在Chrome 41.0.2272.76和Canary 43.0.2318.0中看到了这一点。这似乎确实是Chrome41.x中出现的一个bug,并且已经有报道

$(“button.hide”)。在(“单击”,函数()上){
$(“div.wrap”).toggleClass(“隐藏”);
});
.wrap.hide p{
显示:无;
}
钮扣{
光标:指针;
}

切换“显示:无;”
一,

二,

三,

四,

... 998

999

一千


有一个解决方法。使用{height:0;}代替{display:none;},使用{height:initial;}代替{display:block;}


当我在Chrome中遇到1300多个项目的相同问题时,我使用了它。

注意到Chrome版本40.0.2214.115 m中没有性能问题,包含100000个元素。我刚刚更新到版本41.0.2272.89 m,我注意到滞后问题alsoLike@pschueller,在v40中工作正常,但升级后遇到性能问题。Chrome怎么会越来越差?刚刚报道了这个问题。已将此问题URL添加到票证。希望他们能弄明白。哦,等等……为了更好地复制display:none,基于给定的示例,您还需要对隐藏元素使用{overflow:hidden;margin:0;}。这是一个合法的解决办法,因为没有延迟,并且会让我度过难关,直到补丁进入Chrome。应该提到的是,这不适用于内联元素。