每五秒调用请求动画帧

如果我需要不断获取一些新数据,我知道最好的解决方案是 websockets。这样服务器会在有新数据时通知客户端。但为了避免这种情况发生,我需要每五秒调用一次 http 请求。


我在这里使用计数器只是为了模拟而不是调用一些 http 服务。


let counter = 0;

setInterval(() => {

  console.log(counter);

  ++counter;

},5000)

我读到更好的解决方案是 requestAnimationFrame 而不是 setInterval。浏览器对它进行了更优化,并且当选项卡不活动时它会暂停。设置间隔继续触发,并且当选项卡不活动时,这不好。


我如何每五秒调用 requestAnimationFrame 中的某个函数?


慕桂英3389331
浏览 59回答 1
1回答

小怪兽爱吃肉

要实际上每 5 秒调用一次,您仍然需要(至少)setTimeout. 但有了这个,下面的一些事情就会起作用:requestAnimationFrame(function run() {    console.log('do something w/o initial delay');    setTimeout(function () {        console.log('do something w/ initial delay');        requestAnimationFrame(run);    }, 5000);});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript