我有,我认为,这是一个相当微不足道的javascript。 如果我运行速度非常快,那么情况就会恶化,FireFox 4中的内存分配会不断增加。我尝试使用chrome并且内存似乎保持稳定。
这是一个FF4问题还是我的JavaScript构建得很差?
注意页面上没有加载其他JS文件。我在“安全模式”下运行FF,禁用所有插件。没有加载其他标签。
<img id="heartbeat" name="heartbeat" src="/web/resources/graphics/greylight.png" />
<script type="text/javascript">
var hasTimedout = 1;
var lastPollTime = new Date();;
var maxDifference = 6000 * 2; //allows us to miss one poll of the data without showing anything bad
function heartbeat()
{
var curTime = new Date();
var diff = curTime.getTime() - lastPollTime.getTime();
if (diff > maxDifference && hasTimedout == 0)
{
document.getElementById('heartbeat').src = '/web/resources/graphics/greylight.png';
hasTimedout = 1;
}
else if (diff < maxDifference && hasTimedout == 1)
{
document.getElementById('heartbeat').src = '/web/resources/graphics/greenlight.png';
hasTimedout = 0;
}
toggle_visibility('heartbeat');
}
function toggle_visibility(id) {
var e = document.getElementById(id);
if (e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
setInterval("heartbeat()",20);
</script>
答案 0 :(得分:2)
有关Javascript垃圾收集的一些信息:SO Thread on JS GC
特别感兴趣(也许):
我只能断定你应该尝试使用“new”关键字将对象创建与delete语句配对,看看是否会产生影响。
否则代码看起来很好。