作者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