2011-10-03 4 views
0

전 세계적으로 저장된 그림 배열이 있습니다. 매 초마다 화면의 그림을 선택하고 사라지며 배열의 그림으로 바꿉니다. 나는 $("#picture" + picture.id).remove()을 사용하여 현재 그림을 화면에서 제거합니다. 그런 다음 사용합니다어떻게이 Javascript 메모리 관리 오류를 해결할 수 있습니까?

$(".pictureframe").prepend(

<div id="picture+picture.id" class="imageframe" style="opacity:0; left:x px; top:y px;" > 
    <img class="image" width="picture.width" height="picture.height" src="picture.source" /> 
</div> 

); 

읽기 쉽도록 모든 이스케이프가 제거되었습니다. 그림은 개체이므로 picture.id는 그림 ID입니다. 문제는 페이지를 열면 (그리고 열려있는 하나만 있으면) 브라우저 메모리가 삭제된다는 것입니다. 나는 그 페이지만으로 1.4gb 사용량을 얻는다. 브라우저가 다시 삽입 될 때마다 이미지의 클론을 생성한다고 상상해 봅니다. 내가 삭제 한 DOM 요소에서 호출 할 수있는 가비지 컬렉터 삭제 기능이 있습니까? 내가 어떻게 그럴 수 있니?

+0

DOM에서 삭제하려고하지만 DOM에서 제거하는 데 도움을 요청할 수 있습니다. 실제로 DOM에서 삭제되었는지 확인 했습니까? – fazo

+0

예, 방화 광은 그림 프레임에 올바른 요소가 10 개뿐임을 보여줍니다. – chacham15

+0

실제 코드를 게시하십시오. 게시 한 내용이 유효한 자바 스크립트가 아니며 실행되지 않습니다. 메모리 누수와 관련하여 도움이 필요한 경우 누수의 원인이되는 코드를 게시해야합니다. – user113716

답변

1

내가하는 일은 모든 이미지를 한꺼번에 가져 오는 것이지만, 모두 하나만 display: none으로 설정 한 다음 필요에 따라 페이드 인/아웃합니다. 이렇게하면 실제 DOM 조작이 없으며 스타일과 메모리 만 컴퓨터의 USB 포트에서 누출되지 않습니다. p

관련 문제