为什么我的滚动条在IE上反应如此之慢?

时间:2014-03-11 11:28:27

标签: javascript performance internet-explorer dom knockout.js

我编写了一些网页控件(源代码位于https://rawb.codeplex.com/),其中包括一个用于Knockout的高性能数据网格。在http://www.spannerjs.com/Rawb/index.html处有一个演示页。

在Chrome和Firefox下,当垂直滚动网格时,网格演示与丝绸一样流畅。在IE11下,至少在Windows 8上,垂直滚动网格是非常不稳定的 - 帧速率下降到大约4 FPS。这很奇怪,因为如果您专注于网格(例如,通过单击一行),然后按住向下箭头键,您可以看到网格在IE11下可以快速流畅地滚动。 / p>

我已尝试使用IE11探查器和UI响应工具检查这种现象,但一直无法解决为什么使用鼠标滚动应该如此差。我应该指出滚动条是手工编码的(即不是浏览器默认滚动条) - 文件self.dragScrollBar类中的关键函数是Rawb\js\rawb.ui.js

如果有人可以就如何解决问题提出建议,我将非常感激。

编辑 - 已解决

似乎IE11(至少)不喜欢在有等待处理的事件队列时将事件处理代码与呈现交错。修复是为了限制滚动条后面的observable的更新,将更新限制为50 Hz。这全面解决了问题。

0 个答案:

没有答案