2012-02-06 54 views
0

我正面临着javascript和浏览器(Chrome)内存使用率的问题。JavaScript setTimeout和Chrome内存使用率

在我的脚本中有定时器(setTimeout),它是从浏览器检查位置。我注意到这个标签的内存利用率逐渐增加(在任务管理器中),这会在一段时间后在所有标签中产生最大内存并最终导致页面死机和崩溃。

是否有任何方式或一些JS使用,我可以在一段时间后释放内存?

解决方案:

前:

function recalculateDistance() { 
    getLocation(); 
    getDistance(); 
    setTimeout("recalculateDistance()", 10000); 
} 

后:

var timer = null; 

function recalculateDistance() { 
     clearTimeout(timer); 
     getLocation(); 
     getDistance(); 
     timer = setTimeout("recalculateDistance()", 10000); 
} 
+0

我认为问题在于你在开始的setTimeout里面的代码()。你可以发布一些代码吗? – Chris 2012-02-06 10:47:09

回答

1

后的代码,如建议。

clearTimeout(),就像名称所述,清算超时。这可以帮助你?

,此外,如果你正在做一个“计时器”,我建议使用setInterval()代替setTimeout()

+0

感谢问题的解决方案 – Pawan 2012-02-07 03:57:31

+0

如果这个答案是任何帮助,我会很高兴upvoting和批准它:) – zvona 2012-02-07 07:35:07