在javascript中获取以毫秒为单位的更好方法?
在 JavaScript 中,有没有一种替代方法可以使用 date 对象以毫秒为单位获取时间,或者至少有一种方法可以重用该对象,而不必在每次需要获取此值时实例化新对象?我之所以问这个问题,是因为我试图用JavaScript制作一个简单的游戏引擎,并且在计算“增量帧时间”时,我必须每帧创建一个新的Date对象。虽然我不太担心这样做的性能影响,但我对此对象返回的确切时间的可靠性有一些问题。
我在动画中每隔一秒左右就会得到一些奇怪的“跳跃”,我不确定这是否与JavaScript的垃圾回收有关,或者更新得如此之快时Date对象的限制。如果我将delta值设置为某个常量,那么动画如果完全平滑,所以我相当确定这种“跳跃”与我获得时间的方式有关。
我能给出的唯一相关代码是我计算增量时间的方式:
prevTime = curTime;
curTime = (new Date()).getTime();
deltaTime = curTime - prevTime;
在计算运动/动画时,我将一个常量值与增量时间相乘。
如果无法避免使用 Date 对象获取以毫秒为单位的时间,那么递增变量(即自游戏开始以来以毫秒为单位的经过时间)的函数,以及使用 SetTimer 函数以每毫秒一次的速率调用的函数是否是一种高效可靠的替代方案?
编辑:我现在已经在不同的浏览器中测试了我的代码,似乎这种“跳跃”实际上只在Chrome中很明显,而不是在Firefox中。但是,如果有一种方法可以在两个浏览器中都有效,那仍然会很好。