首頁 > web前端 > js教程 > 主體

js記憶體洩漏是什麼意思? js記憶體洩漏的介紹

不言
發布: 2018-08-15 17:22:26
原創
3764 人瀏覽過

這篇文章帶給大家的內容是關於js記憶體洩漏是什麼意思? js記憶體洩漏的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

記憶體外洩是指一塊被指派的記憶體既不能使用,又不能回收,直到瀏覽器進程結束。

       垃圾回收器定期掃描對象,並計算引用了每個對象的其他對象的數量。如果一個物件的參考數量為 0(沒有其他物件引用過該物件),或對該物件的惟一引用是循環的,那麼該物件的記憶體即可回收。 

setTimeout 的第一個參數使用字串而非函數的話,會引發記憶體洩漏。

閉包、控制台日誌、循環(當兩個物件彼此引用且彼此保留時,就會產生一個循環)

釋放記憶體的方法:賦值為「null

引起記憶體洩漏的情況:

1、意外的全域變數引起的記憶體洩漏

#原因:全域變量,不會被回收。

解決:使用嚴格模式避免

2、閉包引起的記憶體洩漏

#原因:閉包可以維持函數內局部變量,使其無法釋放。

解決:將事件處理函數定義在外部,接觸閉包,或在定義事件處理函數的外部函數中,刪除DOM的參考。

3、沒有清理的DOM元素引用

原因:雖然別的地方刪除了,但是物件中還存在DOM的引用。

解決:手動刪除

4、被遺忘的計時器或回調

原因:定時器中有DOM的引用,即使DOM刪除了,但計時器還在,所以記憶體中還是有這個DOM。

解決:手動刪除定時器和DOM

5、子元素存在引用引起的記憶體洩漏

原因:p中的ul li 得到這個p,會間接引用某個得到的li,那麼此時因為p間接引用li,即使li被清空,也還在內存中,並且只要li不被刪除,它的父元素都不會被刪除。

解決:手動刪除情空

相關推薦:

##JavaScript避免記憶體外洩及記憶體管理技巧_javascript技巧

js記憶體外洩的幾種情況詳細探討_javascript技巧

以上是js記憶體洩漏是什麼意思? js記憶體洩漏的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!