每五秒调用一次请求动画帧

Call request animation frame every five seconds

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

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

let counter = 0;
setInterval(() => {
  console.log(counter);
  ++counter;
},5000)

I've read that better solution is requestAnimationFrame instead of setInterval.It is more optimised by the browser and also when the tab is not active it is paused. Set interval continues to fire and when the tab is not active which is not good.

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

要真正每 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);
});