具有较大间隔的Settimeout功能会占用大量CPU功率

时间:2014-03-23 10:15:06

标签: javascript performance cpu settimeout

我必须每隔30分钟刷新一次页面,然后使用settimeout函数来重现这一点。所以,我的间隔是1800000.在这样的间隔,我面临性能问题。似乎settimeout是相当贪婪的功能。是否有更好的解决方案来帮助我完成任务?

1 个答案:

答案 0 :(得分:2)

我不知道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);