由于JavaScript是一门单线程语言,所以setTimeout
的误差无法完全被解决
也许会因为浏览器中的事件过多导致该宏时间等待时间增长
也许会因为也许是因为回调中的某些问题使得时延增加。
还可能是因为HTML5
标准中规定函数第二个参数不得小于4ms
而强制增加。
所以,页面开久了定时器会不准
所以我们可以手动实现一个相对较准的计时器
1 | var period = 60 * 1000 * 60 * 2 // periodms之后 |
由于JavaScript是一门单线程语言,所以setTimeout
的误差无法完全被解决
也许会因为浏览器中的事件过多导致该宏时间等待时间增长
也许会因为也许是因为回调中的某些问题使得时延增加。
还可能是因为HTML5
标准中规定函数第二个参数不得小于4ms
而强制增加。
所以,页面开久了定时器会不准
所以我们可以手动实现一个相对较准的计时器
1 | var period = 60 * 1000 * 60 * 2 // periodms之后 |