【发布时间】:2012-08-02 13:50:10
【问题描述】:
我用new goog.Timer(1) 制作了一个goog.Timer 对象(http://closure-library.googlecode.com/svn/docs/class_goog_Timer.html),通过监听tick 事件每毫秒运行一个函数。但是,该函数似乎每 100 毫秒运行一次。
我假设我的函数需要一段时间才能运行(当然 javascript 是单线程的),所以需要一段时间才能进入下一轮。因此,我将计时器的间隔设置为 100,并且它每 1/10 秒可靠地运行一次。
Google Closure 库是否有一个更可靠的计时器,它只在间隔精确地运行一个函数?如果没有足够的时间在一个周期内运行一个函数,我可以取消前一个调用并在下一次分派滴答时运行它。
【问题讨论】:
-
goog.Timer包装了原生setInterval,它本身可能不够快,无法在 1 毫秒内运行您的函数。你确定你需要那么多粒度吗? 1ms 轮询是残酷的。不能用goog.events.listen和dispatchEvent吗? -
谢谢,我不需要 1ms 的粒度。不过 20-100 毫秒就好了。
标签: timer google-closure google-closure-library