Javascript內存釋放

轉載自  http://www.cankaojishu.com/bcyy/82145.html


JavaScript語言有自己的一套內存回收機制,一般情況下局部變量和對象使用完就會被系統自動回收,無需我們理會。但是碰到閉包的情況這些變量和對象是不會被回收的,對於普通的web站點,頁面刷新或跳轉這些內存也會被回收。如果是單頁web站點,頁面切換及數據請求都是通過ajax無刷新機制實現的,頁面資源無法自動回收,時間長了會嚴重影響性能,造成內存泄漏甚至頁面崩潰直接退出,這時候手動釋放不用資源就非常必要了,包含刪除dom、釋放對象等,這篇文章介紹如何釋放JS對象。


一、在此之前我們需要學會使用Chrome的內存分析工具來查看頁面各個對象的內存佔用情況

1、在開發者工具中選中Profiles,選擇Take Heap Snapshot,點擊Take Snapshot按鈕


2、選中生成的Heap Snapshot報表,在右邊輸入要查詢的對象



來看看下面幾個例子【注:例子實現的功能實際意義,只是爲了展示今天要講的東西】:

html部分:

<style>
        .div1,.div2 {
        width:100px;
        height:100px;
        border:1px solid red;
        }
    </style>

<div class="div1">
        div1
    </div>
    <div class="div2">
        div2
    </div>

二、沒有形成閉環,創建的對象使用完後自動銷燬或手動設爲null銷燬

1、系統自動回收Test對象


轉載自  http://www.cankaojishu.com/bcyy/82145.html


發佈了333 篇原創文章 · 獲贊 68 · 訪問量 111萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章