掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
使用JavaScript進(jìn)行DOM操作的時(shí)候,視瀏覽器的情況,總會(huì)遇到些有趣的事情。這次描述的問(wèn)題和IE6和innerHTML關(guān)聯(lián)有關(guān):細(xì)節(jié)記錄, ie6 對(duì)已刪除結(jié)點(diǎn)的innerHTML以及dom操作時(shí)會(huì)出現(xiàn)該刪除節(jié)點(diǎn)的內(nèi)存再也釋放不掉,而設(shè)置刪除節(jié)點(diǎn)的屬性以及 css 則沒(méi)有問(wèn)題。

經(jīng)常在 xhr 中回調(diào)處理結(jié)點(diǎn)的注意了,可能要處理的結(jié)點(diǎn)已經(jīng)刪除了。
測(cè)試代碼:
- < div id="p">
- < a id="c">
- xx
- < /a>
- < /div>
- < script>
- window.onload=function(){
- var a=document.getElementById("c");
- document.getElementById("p").innerHTML="";
- //css,屬性沒(méi)有問(wèn)題
- //a.style.width="1px";
- //a.href="xx";
- //設(shè)置innerHTML就有問(wèn)題了:改變了innerHTML關(guān)聯(lián)
- a.innerHTML='yy';
- //dom a 和 span 都無(wú)法釋放了
- //a.appendChild(document.createElement("span"));
- //a=null;
- }
- < /script>
正常情況下:
頁(yè)面執(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 無(wú)法釋放

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流