search

Home  >  Q&A  >  body text

javascript - DOM 中的事件监听频率问题

情境描述

之前有写两个方法,这两个方法都是要监听scroll事件的,所以用了throttle()优化性能。不过在我设定throttle()的间隔时间参数的时候发现,至少要设定在15ms以下甚至10ms以下才能达到我理想的顺滑的效果,在这个数值以上的话,那两个方法监听的时候,如果变化的速度太快就会有滞留等情况。

问题

那么我就想问,浏览器默认的监听频率是多少? 也就是我不用throttle()的情况下的时间间隔是多少呢? 因为假如,浏览器默认的监听频率也是10ms,那么我为了达到理想状态给throttle()添加时间参数也是10ms的话,那用throttle()似乎就没有意义了。
google之后没找到这个默认频率,比如在resize MDN里只提到一句:

Since resize events can fire at a high rate, the event handler shouldn't execute computationally expensive operations such as DOM modifications.

还望知情的前辈告知这里的high rate到底是多少,或者给几个搜索的关键词也行,谢谢!!

PHP中文网PHP中文网2820 days ago686

reply all(1)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:35:39

    一般显示器最优 fps 是 60
    1000 / 60 = 16.67
    也就是 17ms 一帧
    你设置为 10ms,即使 js 能处理过来,显示器也无法每隔 10 ms 渲染一次

    reply
    0
  • Cancelreply