2012-02-06 104 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