dzm*_*dzm 2 javascript jquery node.js socket.io
我正在使用带有socket.io的Node.js并为计时器设置setInterval.
我有以下内容.我正在清除断开间隔,并在设置间隔之前进行检查.但是,如果我刷新页面很多,似乎不准确.控制台日志将以比一秒钟快得多的间隔显示"时间"并组合在一起.
有什么建议可以确保新计时器永远不会启动多次?
socket.on('disconnect', function () {
console.log('Disconnected');
clearInterval(timer);
});
if (typeof timer != 'undefined') {
clearInterval(timer);
}
var timer = setInterval(function() {
console.log('time');
}, 1000);
Run Code Online (Sandbox Code Playgroud)
有什么建议可以确保新计时器永远不会启动多次?
这正是setTimeout()......
如果您的意思是" 每秒超过一次",您需要注意,setInterval()如果不及时处理事件,将导致事件堆积起来.这将导致你的差距不到一秒钟.
唯一的答案是setTimeout()在超时处理程序本身内使用from 启动一个新的一次性计时器.调用setTimeout自己的回调中递归确保只有一次一个计时器事件没有把对事件队列.
| 归档时间: |
|
| 查看次数: |
1053 次 |
| 最近记录: |