javascript - 使用 requestAnimationFrame 创建无限事件循环是否有性能成本

标签 javascript

如果我需要 javascript 中的事件循环永远运行(可能在循环内查询 REST api),如果按如下方式实现,是否会有性能损失

function eventLoop() {
// Call to REST api
requestAnimationFrame(eventLoop);
}
requestAnimationFrame(eventLoop);

或如这里所示

http://codepen.io/chriscoyier/pen/ltseg

最佳答案

requestAnimationFrame 顾名思义,用于渲染动画。它具有高达 60 fps 左右的高迭代率。如果您正在轮询 API(这可能需要花费大量时间才能返回响应),这听起来有点矫枉过正。

为什么不简单地使用setTimeout?您可以轮询 API,然后在返回请求时,可以选择再次轮询。

var timer;

function pollAPI() {
    $.ajax({
      success: function(response) {
        if (response == 'something') {
            // do something
        } else {
            // poll again
            timer = setTimeout(pollAPI, 50);
        }
      }
    });
}

pollAPI();

关于javascript - 使用 requestAnimationFrame 创建无限事件循环是否有性能成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31778032/

相关文章:

c# - 处理差异,在编码 URI 部分时使用 C# 和 javascript 方法

javascript - 无法为 html5 Canvas 上的矩形设置背景颜色

javascript - 如何使用 style 属性为 Ext js xtype tabpanel 应用样式?

javascript - 如何更新 Angular2 中的矩阵参数

javascript - 删除 :focus/control generated error field 上的输入文本

javascript - 覆盖字段类型定义

javascript - 如何简化嵌套对象到对象数组的转换?

javascript - 如何在集合中使用 Parse.query(类似 Backbone)

javascript - jQuery Masonry 与 JavaScript 生成的 HTML 不起作用

javascript - React-JS : Uncaught TypeError: Cannot read property 'router' of undefined