自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

改變innerHTML關(guān)聯(lián)導(dǎo)致內(nèi)存無法釋放

開發(fā) 前端
本文描述了一個(gè)DOM操作中很基礎(chǔ)的問題:改變已經(jīng)刪除結(jié)點(diǎn)的innerHTML關(guān)聯(lián),會(huì)導(dǎo)致內(nèi)存無法釋放的問題。

使用JavaScript進(jìn)行DOM操作的時(shí)候,視瀏覽器的情況,總會(huì)遇到些有趣的事情。這次描述的問題和IE6和innerHTML關(guān)聯(lián)有關(guān):細(xì)節(jié)記錄, ie6 對已刪除結(jié)點(diǎn)的innerHTML以及dom操作時(shí)會(huì)出現(xiàn)該刪除節(jié)點(diǎn)的內(nèi)存再也釋放不掉,而設(shè)置刪除節(jié)點(diǎn)的屬性以及 css 則沒有問題。

經(jīng)常在 xhr 中回調(diào)處理結(jié)點(diǎn)的注意了,可能要處理的結(jié)點(diǎn)已經(jīng)刪除了。

測試代碼:

  1. < div id="p"> 
  2.  < a id="c"> 
  3.   xx  
  4.  < /a> 
  5. < /div> 
  6.  
  7.  
  8. < script> 
  9.  window.onload=function(){  
  10.     
  11.   var a=document.getElementById("c");  
  12.   document.getElementById("p").innerHTML="";  
  13.     
  14.   //css,屬性沒有問題  
  15.   //a.style.width="1px";  
  16.   //a.href="xx";  
  17.     
  18.   //設(shè)置innerHTML就有問題了:改變了innerHTML關(guān)聯(lián)  
  19.   a.innerHTML='yy';  
  20.     
  21.   //dom a 和 span 都無法釋放了  
  22.   //a.appendChild(document.createElement("span"));  
  23.     
  24.   //a=null;  
  25.    
  26.  }  
  27.  < /script> 
  28.    

正常情況下:

頁面執(zhí)行后 in-use 結(jié)點(diǎn) 6 個(gè) ,a 已經(jīng)釋放了

正常情況 

innerHTML關(guān)聯(lián):

改變了已刪除結(jié)點(diǎn)的innerHTML in-use 結(jié)點(diǎn) 7 個(gè) ,a 無法釋放

innerHTMl關(guān)聯(lián) 

【編輯推薦】

  1. 詳解Javascript中的Array擴(kuò)展
  2. JSON是什么?為JavaScript準(zhǔn)備的數(shù)據(jù)格式
  3. 十個(gè)最常用的JavaScript自定義函數(shù)
  4. 有關(guān)JavaScript事件加載的一些延伸思考
  5. JavaScript使用心得匯總:從BOM和DOM談起
責(zé)任編輯:yangsai 來源: JavaEye博客
相關(guān)推薦

2013-06-04 14:21:20

Vector內(nèi)存釋放

2012-09-13 15:37:21

linux內(nèi)存

2009-06-10 22:03:40

JavaScript內(nèi)IE內(nèi)存泄漏

2023-10-18 13:31:00

Linux內(nèi)存

2010-01-12 11:52:40

2024-11-07 09:37:46

2010-03-05 13:59:16

Linux服務(wù)器內(nèi)存

2023-04-27 14:39:57

騰訊C++后端

2010-07-29 14:08:05

Flex內(nèi)存泄露

2022-10-18 08:38:16

內(nèi)存泄漏線程

2011-07-25 17:48:10

iPhone 內(nèi)存

2022-10-30 13:21:58

谷歌Chrome瀏覽器

2021-08-10 09:58:59

ThreadLocal內(nèi)存泄漏

2010-03-31 10:07:09

Oracle shar

2024-11-11 07:00:00

getHTML()前端開發(fā)innerHTML

2010-08-26 09:51:56

級聯(lián)端口

2011-07-22 15:42:39

Objective-C UIView 內(nèi)存

2024-09-20 11:32:28

.NET內(nèi)存管理

2022-07-28 08:00:00

Buddy算法內(nèi)存系統(tǒng)

2011-08-16 15:13:49

IOS編程內(nèi)存
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號