小编典典

使用setInterval()进行简单的连续轮询

ajax

对于需要刷新以设置的时间间隔呈现给用户的部分数据的简单Web应用程序,仅使用setInterval()从端点获取JSON而不使用适当的轮询框架是否有任何弊端?

出于示例的原因,可以说我每5秒刷新一次处理作业的状态。


阅读 333

收藏
2020-07-26

共1个答案

小编典典

根据我的评论:

我将使用setTimeout
[docs]

并始终在收到上一个响应时调用它。这样,在请求/响应花费的时间超过间隔时间的情况下,可以避免可能的拥塞或函数堆栈或任何您想调用的函数。

所以像这样:

function refresh() {
    // make Ajax call here, inside the callback call:
    setTimeout(refresh, 5000);
    // ...
}

// initial call, or just call refresh directly
setTimeout(refresh, 5000);
2020-07-26