setTimeout原来有这种用途
setTimeout有两个参数,第一个是需要执行的函数,第二个是将该函数推入UI队列的时间。
需要注意的两点:
1、第二个参数中设置的时间,是从执行setTimeout开始计算,而不是从整个函数执行完开始计算
2、推入到UI队列中该函数也不是立即执行,而是要等到队列里的其它函数执行完成之后再执行。
setTimeout的用途:
1、复位所有的浏览器限制,如:长运行脚本时间;调用栈。可以作为长运行脚本时间和栈溢出的跨浏览器解决方案。
2、由于UI更新和js执行只能交替进行,为了不阻碍用户操作,可以通过setTimeout让出js的执行而进行UI的更新。
定时器的精度:
1、定时器在浏览器中并不是精确计算的,会有几毫秒的误差,因此不可用来测量时间。
2、window系统的定时器分辨率是15ms,因此在浏览器中设置定时器时,最好不要小于15ms