2010-03-16 6 views
1

웹 사이트에서 호스팅되는 JavaScript 위젯이 있습니다. 이 위젯은 로컬 네임 스페이스의 많은 변수에서 상태를 추적합니다. 또한 마우스 움직임과 같은 여러 이벤트에 대한 리스너를 연결합니다.창 언로드시 JavaScript 객체를 명시 적으로 제거해야합니까?

명시 적으로 상태 추적 변수를 모두 삭제하고 창 언로드시 이벤트 리스너를 분리해야합니까? 또는 사용자가 위젯을 호스팅하는 페이지를 떠난 후에 정리 작업을 수행하기 위해 브라우저를 사용하는 것이 좋습니까?

답변

4

일단 창을 없애면 그 안에있는 모든 것을 없앨 수 있습니다. 따라서 자신의 가비지 콜렉션을 수행 할 필요가 없습니다. 특정 브라우저에 메모리 누수가있는 경우 이는 잘못이 아니므로 사실상 가비지 수집은 도움이되지 않을 것입니다.

+0

답변의 순위를 매기십시오! –

+0

@Bilal : 완벽한 세상에서 그들은 그렇게 할 것입니다. 이것은 단지 드라이브 바이 촬영이었고, 불행히도 이런 종류의 일은이 보드에서 수시로 발생합니다. – Robusto

+0

완벽한 세계에서 메모리 누수가 존재하지 않습니다. 불행하게도 우리 (그리고 더 중요한 것은 사용자)는 여전히 메모리 누수가있는 브라우저를 사용합니다. 난 당신이 적어도 수동 가비지 수집을해야한다고 생각 : http://javascript.crockford.com/memory/leak.html (내 downvote, BTW). –

관련 문제