时间间隔大的Settimeout函数会消耗大量的CPU功率

Settimeout function with a big interval eats a lot of CPU power

本文关键字:功率 CPU 函数 Settimeout 时间      更新时间:2023-09-26

我必须每30分钟刷新一个页面,我使用settimeout函数来完成这一点。区间是1800000。有了这样的间隔,我就面临性能问题。似乎settimeout是一个非常贪婪的函数。有没有更好的办法来完成我的任务?

我不知道setTimeout的性能问题。

如果一个大的超时是一个问题,那么你可以做这样的事情,仍然检查30分钟是否已经过期,但减少超时时间,即每分钟检查一次,如果30分钟已经过去了:

var oneMinute = 60000;
var expired = new Date((new Date()).getTime() + 30*oneMinute);
var checkExpired = function(){
 if( new Date() < expired) {setTimeout(checkExpired, oneMinute); }
 else { reloadPage();}
});
setTimeout(checkExpired, oneMinute);