我想知道如果我可以做一些清理例程,將自動獲取超時/間隔。考慮這一點:通過setInterval/setTimeout訪問eval'd代碼
var timeout = setInterval(function dimitar() {
console.log("hi!");
}, 1000);
console.log(window);
我有一個通過窗口看,無法找到任何引用傳遞的函數。對超時的引用在那裏,果然。那麼這個功能在哪裏「生活」在這裏?它是否啓動了一個js解釋器的新實例來評估/運行/保留代碼?你怎樣才能訪問它關於超時uid?
我知道我可以討好的setInterval函數,並讓它始終存儲參考到一個數組,然後我就可以遍歷和明確的,但很好奇,如果有這樣
感謝您的解釋,現在更清楚 - 換句話說,我需要保留並清理引用。我只把名字函數dimitar放在那裏,所以我可以在firebug中搜索它。 – 2010-02-05 11:45:21
'clean'在刪除超時'onunload'以儘量避免內存泄漏?這隻適用於IE6。 (即使這樣,我並不完全確定超時參與IE臭名昭着的本地/主機對象引用循環,但沒有經過測試。) – bobince 2010-02-05 12:20:26
我剛剛在mootools中創建了這個 - http://mootools.net/shell/judGJ /是的,避免由於可能已經運行的代碼造成的內存泄漏不是一個壞主意,imo - 特別是對於IE – 2010-02-05 12:28:22