Javascript导致Chromium内存不足

Javascript导致Chromium内存不足,javascript,memory-leaks,raspberry-pi,chromium,Javascript,Memory Leaks,Raspberry Pi,Chromium,我有一段代码,它会导致监视图形的图形定期更新,并用raspberry pi显示,但我遇到的问题是pi的内存有限,Chromium会因为内存不足而死亡。我认为这是因为当图像更新时,它会将旧图像保存到某个地方。我曾尝试使用JS删除图像并创建一个带有更新图像的新图像,但没有成功。我对Javascript不太熟悉,所以我不确定自己是犯了新手错误还是什么。代码如下: <script type= "text/javascript"> var graph = "http://www.example

我有一段代码,它会导致监视图形的图形定期更新,并用raspberry pi显示,但我遇到的问题是pi的内存有限,Chromium会因为内存不足而死亡。我认为这是因为当图像更新时,它会将旧图像保存到某个地方。我曾尝试使用JS删除图像并创建一个带有更新图像的新图像,但没有成功。我对Javascript不太熟悉,所以我不确定自己是犯了新手错误还是什么。代码如下:

<script type= "text/javascript">
var graph = "http://www.example.com";
function preload() 
{
    try
    {
        var buffer = new Image();
        buffer.src = graph;
        buffer.onload = function() 
        {
            while (1)
            {
                setTimeout(preload, 1000);
                document.getElementById('graph').src = buffer.src;
            }
        }
    }

    catch(err)
    {
        txt = "Error\n" + err.message;
        alert(txt);
    }
}   
preload()
</script> 

变量图=”http://www.example.com";
函数预加载()
{
尝试
{
var buffer=新图像();
buffer.src=图形;
buffer.onload=函数()
{
而(1)
{
设置超时(预加载,1000);
document.getElementById('graph').src=buffer.src;
}
}
}
捕捉(错误)
{
txt=“Error\n”+err.message;
警报(txt);
}
}   
预载
图像的HTML为:

<img src= "http://www.example.com" id=graph width=1015 
    height=275 frameborder="0" onload="preload()" style="display: block; 
    margin-left: auto; margin-right: auto;" align="bottom"/>

这里有一个大大简化的脚本,您的循环毫无意义,代码中也没有Ajax

var graph = "https://zabbix.tulsahpc.org/signage/sign.png",tId;
window.onload=function() {
  tId=setInterval(function() {
    document.getElementById('graph').src = graph+new Date().getTime();// avoid cache
  },10000);// reload every 10 secs
}

您正在排队等待无限多的事件(
,而(1){setTimeout(/*..*/);}
)。这就是导致浏览器内存不足的原因。