gpt4 book ai didi

在图像之间切换时 Javascript 内存泄漏 (FireFox4)

转载 作者:行者123 更新时间:2023-11-29 22:34:57 25 4
gpt4 key购买 nike

我认为,我拥有的是相当微不足道的 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>

最佳答案

关于 Javascript 垃圾回收的一些信息:SO Thread on JS GC

特别感兴趣(可能):

  • 使用删除语句。每当你使用新的创建一个对象声明,将其与删除配对陈述。这确保了所有与相关联的内存对象,包括它的属性名称,可用于垃圾收集。讨论删除语句更多内容在“释放对象”中。
  • 使用 var 关键字。任何变量不使用 var 关键字创建的是在全局范围内创建并且是永远没有资格垃圾收藏,呈现内存泄漏的机会。

我只能得出结论,您应该尝试将使用“new”关键字的对象创建与 delete 语句配对,看看是否会有所不同。

否则代码看起来没问题。

关于在图像之间切换时 Javascript 内存泄漏 (FireFox4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5568234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com