我编写了一些网页控件(源代码位于https://rawb.codeplex.com/),其中包括一个用于Knockout的高性能数据网格。在http://www.spannerjs.com/Rawb/index.html处有一个演示页。
在Chrome和Firefox下,当垂直滚动网格时,网格演示与丝绸一样流畅。在IE11下,至少在Windows 8上,垂直滚动网格是非常不稳定的 - 帧速率下降到大约4 FPS。这很奇怪,因为如果您专注于网格(例如,通过单击一行),然后按住向下箭头键,您可以看到网格在IE11下可以快速流畅地滚动。 / p>
我已尝试使用IE11探查器和UI响应工具检查这种现象,但一直无法解决为什么使用鼠标滚动应该如此差。我应该指出滚动条是手工编码的(即不是浏览器默认滚动条) - 文件self.drag
中ScrollBar
类中的关键函数是Rawb\js\rawb.ui.js
。
如果有人可以就如何解决问题提出建议,我将非常感激。
编辑 - 已解决
似乎IE11(至少)不喜欢在有等待处理的事件队列时将事件处理代码与呈现交错。修复是为了限制滚动条后面的observable的更新,将更新限制为50 Hz。这全面解决了问题。