Skip to content

Latest commit

 

History

History
30 lines (19 loc) · 1.64 KB

File metadata and controls

30 lines (19 loc) · 1.64 KB

8.2 Minimum timer delay and reliability

timeout和interval的延时可以设置的很长,但是我们能够设置的最短延时是多少呢? 大概还在几年前,设置10ms的延时可能会被嘲笑对浏览器过于自信。但是现在情况已经大大改观。

那么现在到底怎么样呢?做个实验吧。 实验对象如下:

  • ie 9,chrome 12,safari 5,firefox 5,opera 11,操作系统为os x和windows 7 实验方法:

  • 设置一个interval,间隔为1ms,循环100次,计算每2次的实际间隔时间。

实验结论:

  • 在os x下面,firefox的平均间隔为4ms,但是最大的延时可能长达22ms;chrome相对稳定,没有很长的延时,都集中在4-5ms之间; safari就比较慢了,平均达10ms;而opera是最终的胜者,56/100个间隔保持在1ms,最长的间隔也只有6ms。
  • 在windos下面,结果类似,firefox的间隔分布在1-22ms之间,没有明显峰值,非常不稳定;chrome稳定在4ms左右; IE9则集中在可悲的21ms上!opera再次胜出,有99个间隔都在1ms上!
  • 结论:目前大部分浏览器还不能很好支持1ms的间隔,但是有些已经非常接近!

具体时间分布见下面几个图:

osx_timer_delay win_timer_delay

从这些分布上,我们还能进一步确认上一节的结论,即timer的delay时间是不能保证的。

译者自己也试了一下,发现不管在chrome、opera、还是IE11上,延时都集中在5ms左右!