IE11 中的绘制时间

Paint time in IE11

我将 ag-grid 与 angular 4 一起使用。我发现一个问题,即在不同的上下文中,IE11 中的绘制时间要长得多。在一个例子中,我有一个非常基本的 uneditable table 有 10 - 15 行,没有滚动或任何东西。当我将鼠标悬停在 table 上时,帧率开始下降。性能分析我可以看到绘制事件发生得非常频繁,需要 200 - 400 毫秒才能完成。

在具有超过 3000 条记录的全屏搜索模式中使用相同的 table 组件,绘制事件发生的频率要低得多,并且只持续几毫秒。我看到的最长的绘画事件大约是 20 毫秒。

我从哪里开始呢?我可能会寻找哪些东西来弄清楚 angular 组件的上下文如何影响它的绘制速度?

我找到了解决办法。事实证明,IE11 中存在一个错误,导致溢出元素的渲染性能非常差:隐藏,并且 border-radius > 0。我的解决方案是从父元素中删除边框半径 div .

错误报告如下:

https://connect.microsoft.com/IE/feedbackdetail/view/961961/ie-9-ie-11-divs-with-a-border-radius-and-overflow-other-than-visible-resize-slow-when-filled-with-divs-with-position-relative

这是帮助我解决此问题的另一个堆栈溢出 post:

How does overflow: hidden; & border-radius on a container cause massive slowdowns to "Paint / Render Layer" within container, only on IE?