作者kaijajan (kj)
看板Ajax
標題[問題] jquery memory leak
時間Thu Dec 9 20:38:39 2010
或許這不是 jQuery 的問題吧
上網查了一下似乎是因為 innerhtml 的狀況
大致上的使用情況如下
頁面中使用了蠻多的 $(selector).html(..) 的方式加入一段 html
然後清除的時候使用 $(selector).html("");
光是這樣反覆的操作就會讓記憶體不斷的增加
不知是是否有比較有效率的方式能解決這樣不斷增加的記憶體呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.81.84
1F:→ dreamerslab:用$(selector).children().remove()就不會有這個問題 12/09 21:10
2F:→ kaijajan:我再試試看 @@ 感謝樓上的回答 ^^ 12/10 00:03
3F:→ dreamerslab:我記得是因為.html('')不會把data,event handlder等等 12/10 00:42
4F:→ dreamerslab:一起移除的樣子 12/10 00:43
5F:推 JYHuang:我有點好奇,如果.html()裡有一堆js的程式 12/10 13:58
6F:→ JYHuang:在.remove()之後呼叫的話還會不會有效? 12/10 13:58
7F:→ TonyQ:js被執行之後就進記憶體啦,那些只是plaintext而已。 12/10 14:03
8F:→ dreamerslab:或是直接$(selector).empty()也是一樣 12/10 15:10
10F:推 JYHuang:@TonyQ:那如果又被重複呼叫的話,會不會又多佔記憶體呢? 12/10 15:44
11F:→ TonyQ:你這個問題仍然是大哉問啊。:P 存的東西變多的話當然是會, 12/10 19:15
12F:→ kaijajan:網頁搞到太麻煩...用了上面的功能memory還是一直增加 囧 12/16 00:31
13F:→ kaijajan:大概要花不少時間看問題在那了 Orz 12/16 00:32
14F:→ kaijajan:感謝dreamer大的幫忙呀 ^^ 12/16 00:32