日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jscript > Javascript 內存泄漏的幾種模式

Javascript 內存泄漏的幾種模式

來源:程序員人生   發布時間:2014-01-16 19:23:10 閱讀次數:2899次

JavaScript 是一種垃圾收集式語言,這就是說,內存是根據對象的創建分配給該對象的,并會在沒有對該對象的引用時由瀏覽器收回。JavaScript 的垃圾收集機制本身并沒有問題,但瀏覽器在為 DOM 對象分配和恢復內存的方式上卻有些出入。
Internet Explorer 和 Mozilla Firefox 均使用引用計數來為 DOM 對象處理內存。在引用計數系統,每個所引用的對象都會保留一個計數,以獲悉有多少對象正在引用它。如果計數為零,該對象就會被銷毀,其占用的內存也會返回 給堆。雖然這種解決方案總的來說還算有效,但在循環引用方面卻存在一些盲點。

內存泄露的模式大概有以下幾種:

1.循環引用導致了內存泄漏,JavaScript 對象 obj 擁有到 DOM 對象的引用,表示為 DivElement。而 DOM 對象則有到此 JavaScript 對象的引用,由 expandoProperty 表示。可見,JavaScript 對象和 DOM 對象間就產生了一個循環引用。由于 DOM 對象是通過引用計數管理的,所以兩個對象將都不能銷毀。
obj=document.getElementById(”DivElement”);
document.getElementById(”DivElement”).expandoProperty=obj;
obj.bigString=new Array(1000).join(new Array(2000).join(”XXXXX”));
2.由外部函數調用引起的內存泄漏,通過調用外部函數 myFunction 創建循環引用。同樣,JavaScript 對象和 DOM
對象間的循環引用也會導致內存泄漏。
function myFunction(element)
{
this.elementReference = element;
// This code forms a circular reference here
//by DOM–>JS–>DOM
element.expandoProperty = this;
}
function Leak() {
//This code will leak
new myFunction(document.getElementById(”myDiv”));
}
3.Javascript閉包引起的內存泄漏,閉包功能非常強大,原因是它們使內部函數在外部函數返回時也仍然可以保留對此外部函數的變量的訪問。不幸的是,閉包非常易于隱藏 JavaScript 對象 和 DOM 對象間的循環引用。
function  closureDemoParentFunction(paramA)
{
var a = paramA;
return function closureDemoInnerFunction (paramB)
{
alert( a +” “+ paramB);
};
};
var x = closureDemoParentFunction(”outer x”);
x(”inner x”);

Javascript內存泄漏工具:

1.Drip/sIEve

2. Javascript Leaks Detector

3. Leak Monitor

了解更多請閱讀:
http://www.ibm.com/developerworks/cn/web/wa-memleak/
http://djjchobits.javaeye.com/blog/375465

來源:http://adamlu.com/?p=418

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 色九九 | 日本欧美国产在线观看 | 精品少妇一区二区三区日产乱码 | 日韩一级欧美 | 欧美成人一级 | 国产美女久久 | 99精品在线观看 | 国产一区二区在线播放 | 日本中文字幕电影 | 欧美精品在线一区 | 亚洲精品电影网在线观看 | 亚洲精品在线观看免费 | 一本亚洲| 成人性生交大片 | 免费看片黄 | 精品国产一区二区三区久久 | 日韩视频网站在线观看 | 黄视频网站在线观看 | 欧美日韩电影一区二区 | 国产精品一区二区三区av | 国产精品成人一区二区三区夜夜夜 | 精品久久久精品 | 久久综合久久久 | 麻豆国产尤物av尤物在线观看 | 欧美精品tv | 99在线视频精品 | 国产伦精品一区二区三区在线 | 午夜精品久久久久久久久久久久 | 成人综合影院 | а_天堂中文最新版地址 | 午夜激情视频在线 | 国产成人精品视频 | 国产一区二区在线播放 | 精品午夜视频 | 香蕉视频一区二区三区 | 亚洲精品视频久久 | 国户精品久久久久久久久久久不卡 | 国产精品一区二区av | 九九热在线观看 | 99r| 欧美日韩在线一区二区三区 |