解决方案是 当和服务端通信时 记录下一个时间差,(时间差等于服务端时间-本地时间)不管正负我们只要这个时间差。这样每当我们接受到消息 或者发送消息的时候我们就拿本地时间和是价差相加。这样就可以保证和服务端时间是一致的了,思路是不是很牛逼哈哈。
不牛逼,这样也仍然会取不到正确时间。因为时间差本身就无法计算。如果是用setInterval求时间差,锁屏或者压后台后,setInterval暂停执行。如果是用2个(new Date()).getTime()相减,用户中途改下时间,仍然取不到正确的时间差。
requestAnimationFrame详解为什么要说它,源于看到的一道面试题:问题是用js实现一个无限循环的动画。 首先想到的是定时器 可以说是完美实现! 至于时间间隔为什么是1000/60,这是因为大多数屏幕渲染的...