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

Javascript 为什么我的滚动条在IE上反应如此缓慢?,javascript,performance,internet-explorer,dom,knockout.js,Javascript,Performance,Internet Explorer,Dom,Knockout.js,我已经编写了一些web控件(源代码位于),其中包括一个用于的高性能数据网格。网站上有一个演示页面 在Chrome和Firefox下,垂直滚动网格时,网格演示运行起来就像丝绸一样平滑。在IE11下,至少在Windows8上,垂直滚动网格是令人难以置信的波动——帧速率下降到大约4fps。这很奇怪,因为如果你关注网格(例如,点击一行),然后按住向下箭头键,你可以看到网格在IE11下滚动的速度和流畅程度 我试着用IE11档案器和UI响应工具来研究这一现象,但无法找出为什么使用鼠标滚动会如此糟糕。我应该指

我已经编写了一些web控件(源代码位于),其中包括一个用于的高性能数据网格。网站上有一个演示页面

在Chrome和Firefox下,垂直滚动网格时,网格演示运行起来就像丝绸一样平滑。在IE11下,至少在Windows8上,垂直滚动网格是令人难以置信的波动——帧速率下降到大约4fps。这很奇怪,因为如果你关注网格(例如,点击一行),然后按住向下箭头键,你可以看到网格在IE11下滚动的速度和流畅程度

我试着用IE11档案器和UI响应工具来研究这一现象,但无法找出为什么使用鼠标滚动会如此糟糕。我应该指出,滚动条是手工编码的(即,不是浏览器默认的滚动条)——关键功能是文件
Rawb\js\Rawb.ui.js
ScrollBar
类中的
self.drag

如果有人能就如何解决这个问题提出建议,我将不胜感激

编辑--已解决


当有一个等待处理的事件队列时,IE11(至少)似乎不喜欢将事件处理代码与呈现交织在一起。修复方法是限制滚动条后面可观察到的更新,将更新限制为50 Hz。这解决了所有问题。

我不认为“因为它是IE”是一个有效或有用的答案?“恐怕不是——在大多数情况下,IE11让我感觉非常快。随机思考:你对CSS有任何我没有看到的条件注释吗?IE11没有荣誉those@MarkB不,CSS在这方面是完全香草的。如果你选择了像“拉夫”建议的节流路线,你可能想考虑这个简单的脚本。工作起来像一个魅力和轻巧。