클로저의 DOM 개체에 대한 순환 참조는 낮은 버전의 IE에서 메모리 누수를 발생시키는 것으로 알려져 있습니다. 그렇다면 jq 객체순환 참조가 메모리 누수를 일으킬까요? 예: 다음 함수로 인해 메모리 누수가 발생합니까?
闭关修行中......
예, 이 요소가 있으면 #butt在你执行这个函数后从Document中移除,那么它不会被gc回收,因为还存在一个强引用$butt。使用这种方式引用对象可以减少动态构建jq对象的开销,但是需要在这个dom被销毁的时候手动off掉所有引用,比如你这个$butt销毁后应该销毁你的事件引用。$butt.off()。另一种方式是在你的事件函数中不要使用闭包,而是使用动态构建的方式。比如$(this).html('hahah')
#butt
$butt
$butt.off()
$(this).html('hahah')
예, 이 요소가 있으면
#butt
在你执行这个函数后从Document中移除,那么它不会被gc回收,因为还存在一个强引用$butt
。使用这种方式引用对象可以减少动态构建jq对象的开销,但是需要在这个dom被销毁的时候手动off掉所有引用,比如你这个
$butt
销毁后应该销毁你的事件引用。$butt.off()
。另一种方式是在你的事件函数中不要使用闭包,而是使用动态构建的方式。比如
$(this).html('hahah')