【发布时间】:2013-08-27 15:04:48
【问题描述】:
我有一段代码会导致一个图表定期更新,并与树莓派一起显示,但我遇到的问题是因为 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>
图像的 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"/>
【问题讨论】:
-
您正在排队无限数量的事件 (
while(1){setTimeout(/*..*/);})。这就是导致您的浏览器内存不足的原因。
标签: javascript memory-leaks raspberry-pi chromium