我在网站上使用Chart.js
库来制作动画图表。通过阅读有关该主题的其他讨论,当选项卡处于非活动状态或最小化时,浏览器会以不同方式处理SetInterval()
代码。
我注意到一条建议说停止动画并在标签重新获得焦点时重新启动它应该可以解决问题。我不知道该怎么做,也找不到任何代码。该库有"animation: true"
,我相信这可以用来停止/启动它,但不知道如何实现它。
setInterval(function()
{
$.ajax({
type: "POST",
url: "<?= $data['baseUrl']; ?>" + "graphs.json",
data: { 'action': 'getServerStats' },
dataType: 'json',
success: function(data)
{
ram = data['result']['RAMUsageMB'];
// Add two random numbers for each dataset
ramGraph.addData([ram], '');
// Remove the first point so we dont just add values forever
ramGraph.removeData();
}
});
}, 1000);
答案 0 :(得分:0)
document.addEventListener("visibilitychange", function() {
animation = ! document.hidden;
}, false);
https://developer.mozilla.org/en-US/docs/Web/Guide/User_experience/Using_the_Page_Visibility_API
适用于IE 10 +,Firefox 18+和Chrome 33+(根据消息来源)。
您必须自己更改animation = !document.hidden;
,因为您对此主题有点模糊,但这应该会给您一个想法。