sách gpt4 ai đã đi

Làm thế nào để goog.Timer chính xác hơn?

In lại 作者:行者123 更新时间:2023-12-04 05:36:55 27 4
mua khóa gpt4 Nike

我做了一个 goog.Timer对象 ( http://closure-library.googlecode.com/svn/docs/class_goog_Timer.html ) 与 new goog.Timer(1)通过监听滴答事件每毫秒运行一个函数。但是,该函数似乎每 100 毫秒运行一次。

我假设我的函数需要一段时间才能运行(当然 javascript 是单线程的),所以需要一段时间才能进入下一轮。因此,我将计时器的间隔设置为 100,并且它每 1/10 秒可靠地运行一次。

Google Closure 库是否有一个更可靠的计时器,它只在间隔内精确地运行一个函数?如果没有足够的时间在一个周期内运行一个函数,我可以取消前一个调用并在下一次调度滴答时运行它。

1 Câu trả lời

Nicholas Zakas 写了一篇很好的总结 Timer resolution in browsers 在他的博客上。正如尼古拉斯所指出的,HTML5 timers specification (截至 2012 年 8 月 2 日)规定 setTimeout() 的最小间隔和 setInterval()是 4 毫秒。

我编写了以下演示应用程序来测试 goog.Timer 的最小间隔延迟.



<đầu>
goog.Timer Test




goog.Timer Test






goog.require('goog.Timer');


var tickCount = 0;
var timer = new goog.Timer(1);
var mainDiv = document.querySelector('#mainContent');

/**
* Tick callback.
*/
var tickCounter = function() {
tickCount++;
if (tickCount % 1000 === 0) {
var timeElapsed = goog.now() - startTime;
mainDiv.innerHTML = 'goog.Timer tick events: ' + tickCount +
'
actual elapsed milliseconds: ' + timeElapsed +
'
milliseconds per goog.Timer tick: ' + timeElapsed/tickCount;
}
};

startTime = goog.now();
timer.start();
goog.events.listen(timer, goog.Timer.TICK, tickCounter);




在 Chrome 版本 21 中运行此程序始终显示每 goog.Timer 大约为 4.2 毫秒滴答事件,非常接近允许的最小浏览器计时器分辨率 4 毫秒。

关于timer - 我怎样才能让 goog.Timer 更精确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11813922/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com