是否仍需要限制$(窗口).scroll()?

时间:2012-12-10 23:09:24

标签: javascript jquery dom browser

2011年1月,John Resig撰写了一篇oft-cited blog post,建议不要将处理程序附加到窗口滚动事件。

相反,普遍的智慧说要限制你的处理程序,例如:

$(window).scroll(_.throttle(myScrollHandler, 250));

在我最近的测试中,当处理程序直接附加到scroll事件时,UI响应更加平滑。限制处理程序会导致可见的延迟。

有现代浏览器解决了这个问题吗?是否有可用的测试或浏览器兼容性数据?

1 个答案:

答案 0 :(得分:6)

油门将每秒发射的事件数量减少到4。在没有节流的情况下,每秒触发的事件数量可能会大得多。人眼很容易察觉到每秒4次(取决于你在做什么)。

至于你是否仍然需要来限制,这实际上取决于你的客户。如果您使用IE6处理许多使用坏显卡的旧计算机,高速事件触发可能会导致很多明显的问题。它还取决于你的滚动事件实际做了什么(响应需要多长时间,是否消耗内存以及它释放它的速度等等)。