2013-10-08 15 views
0

我必須在某個事件後多次設置一個超時時間。運行後清除超時是否需要或很好的做法?

// initial value 
var x = null; 

// later 
if (!x) { 
    x = setTimeout(function() { 
     // do some stuff 
     clearTimeout(x); 
     x = null; 
    }, 500); 
} 

打電話給clearTimeout(x);有必要嗎?還是現在的內部元素消失了?

我問這個問題的原因是:這個腳本每天會在一個信息亭系統中運行大約一千次。所以它不應該隨着時間的推移填滿內存或產生任何其他問題。

+0

的可能重複發帖[是否有內存泄漏問題,如果調用的setTimeout後沒有要求clearTimout(HTTP://計算器。 com/questions/4244309/is-there-memory-leak-issue-if-not-calling-cleartimout-after-calling-settimeout) – lampshade

回答

0

我不知道內存泄漏問題 - here's的SO從前陣子

+0

對不起,關於變量名稱的混淆。我已經糾正了這個問題。我縮短了這個例子的名字,我只是忘了改變這個例子。 – lampshade

+0

根據鏈接問題的答案,調用'x = null;'應該就夠了吧? – lampshade

+0

如果超時已經觸發,那麼應該清除關聯的資源。我沒有發現任何相反的報道。建議如果你擔心讓它連續運行,並檢查瀏覽器/ PC的內存使用情況,看看它是否在增加。我懷疑這個命令使用的資源是非常小的 – WindsorAndy

相關問題