gpt4 book ai didi

javascript - 使用 setInterval 更新数据的正确方法

转载 作者:行者123 更新时间:2023-11-28 18:26:59 24 4
gpt4 key购买 nike

我有一个从外部源获取数据的应用程序。每隔 5-10 分钟左右,我想重新获取一次,看看是否需要更新应用程序的状态。

是否最好使用 setInterval() 并设置较长的超时时间(如 300s 或其他),然后更新,或者轮询每个类似的 1s然后检查最后一次更新何时完成,如果超过5分钟则获取新数据。

只是从性能的 Angular 好奇一个是否比另一个更好,我以前从未真正正确地实现过这一点。

最佳答案

无论您的需求是什么,您通常不想为此使用 setInterval ,这是通往竞争条件的道路(想象一下,如果 - 对于某些网络怪癖 - 第一个 setInterval 之后返回/em> 下一个)。您想使用setTimeout:

function update() {

fetch(url).then(function(response) {
return response.json();
}).then(function(json) {
// ... do something with your json ...
setTimeout(update, 1000); // <-- now that this call is done,
// we can program the next one
}).catch(function(err) {
// Error :(
setTimeout(update, 1000); // <-- there was a network problem,
// but still, program the next one!
});


}

update();

此示例使用新的 Fetch API,但无论如何它都应该说明问题。

这就是说,由于您每 5 分钟需要新数据,因此只需使用较长的超时即可。您可以使用 5 * 60 * 1000,而不是上面的 1000。

关于javascript - 使用 setInterval 更新数据的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38925157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com