一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Javascript內存泄露

  英文原文:JavaScript Memory Leaks

  1. 什么是內存泄露?

  內存泄露是指分配給應用的內存不能被重新分配,即使在內存已經不被使用的時候。正常情況下,垃圾回收器在 DOM 元素和 event 處理器不被引用或訪問的時候回收它們。但是,IE 的早些版本(IE7和之前)中內存泄露是很容易出現的,因為內存管理器不能正確理解 Javascript 生命周期而且在周期被打破(可以通過賦值為 null 實現)前不會回收內存。

  2. 為什么你需要注意它?

  在大型 Web 應用程序中內存泄露是一種常見的無意的編程錯誤。內存泄露會降低 Web 應用程序的性能,直到浪費的內存超過了系統所能分配的,應用程序將不能使用。作為一位 Web 開發者,開發一個滿足功能要求的應用程序只是第一步,性能要求和 Web 應用程序的成功是同樣重要的,更何況它可能會導致應用程序錯誤或瀏覽器崩潰。

  3. Javascript 中出現內存泄露的主要原因是什么?

  1) 循環引用

  一個很簡單的例子:一個 DOM 對象被一個 Javascript 對象引用,與此同時又引用同一個或其它的 Javascript 對象,這個 DOM 對象可能會引發內存泄露。這個 DOM 對象的引用將不會在腳本停止的時候被垃圾回收器回收。要想破壞循環引用,引用 DOM 元素的對象或 DOM 對象的引用需要被賦值為 null。

  2) Javascript 閉包

  因為 Javascript 范圍的限制,許多實現依賴 Javascript 閉包。如果你想了解更多閉包方面的問題,請查看我的前面的文章 JavaScript Scope and Closure 。

  閉包可以導致內存泄露是因為內部方法保持一個對外部方法變量的引用,所以盡管方法返回了,內部方法還可以繼續訪問在外部方法中定義的私有變量。對 Javascript 程序員來說最好的做法是在頁面重載前斷開所有的事件處理器。

  3) DOM 插入順序

  當 2 個不同范圍的 DOM 對象附加到一起的時候,一個臨時的對象會被創建。這個 DOM 對象改變范圍到 document 時,那個臨時對象就沒用了。也就是說, DOM 對象應該按照從當前頁面存在的最上面的 DOM 元素開始往下直到剩下的 DOM 元素的順序添加,這樣它們就總是有同樣的范圍,不會產生臨時對象。

  4) 如何檢測?

  內存泄露對開發者來說一般很難檢測,因為它們是由大量代碼中的一些意外的錯誤引起的,但它在系統內存不足前并不影響程序的功能。這就是為什么會有人在很長時間的測試期中收集應用程序性能指標來測試性能。

  最簡單的檢測內存泄露的方式是用任務管理器檢查內存使用情況。在 Chrome 瀏覽器的新選項卡中打開應用并查看內存使用量是不是越來越多。還有其他的調試工具提供內存監視器,比如 Chrome 開發者工具。這是谷歌開者這網站中的堆分析的特性的教程。

  參考:

  1. http://Javascript.crockford.com/memory/leak.html

  2. http://msdn.microsoft.com/en-us/library/Bb250448

  3. http://www.ibm.com/developerworks/web/library/wa-memleak/

  (OsChina.NET 編譯)

it知識庫Javascript內存泄露,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲图片一区 | 亚洲狠狠狠一区二区三区 | 成人深爱网 | 日本一区二区三区日本免费 | 久久九九色 | 国产夫妻小视频 | 成年美女黄网站色 | 天天躁日日躁狠狠躁中文字幕老牛 | 午夜激情免费视频 | 99久久久久国产精品免费 | 欧美另类极品videosbest视频 | 国产青草视频 | 伊人狼人视频 | 夜色亚洲| 天天色综合久久 | www.日本一区| 亚洲天堂.com| 毛片一级做a爰片性色 | 国产精品福利在线 | 一本色道久久综合一区 | 上色天天综合网 | 国产视频自拍一区 | 狠狠色成人综合首页 | 国产情侣91 | 色吧亚洲欧美另类 | 日日狠狠久久偷偷四色综合免费 | 免费成年人在线观看视频 | 香蕉视频成人在线观看 | 亚洲欧美色一区二区三区 | 91在线免费视频 | 九九99久久精品午夜剧场免费 | 九九视频这里只有精品 | 久久www免费人成看片色多多 | 亚洲喷水| 久996视频精品免费观看 | 精品国产一区二区三区在线 | 日韩精品中文字幕一区二区三区 | 亚洲第一伊人 | 91尤物视频 | 日本久久综合网 | 韩国女主播一区二区视频 |