>  기사  >  웹 프론트엔드  >  js 메모리 누수는 무엇을 의미합니까? JS 메모리 누수 소개

js 메모리 누수는 무엇을 의미합니까? JS 메모리 누수 소개

不言
不言원래의
2018-08-15 17:22:263799검색

이 기사에서는 js 메모리 누수가 무엇을 의미하는지 설명합니다. js 메모리 누수에 대한 소개에는 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

메모리 누수는 브라우저 프로세스가 종료될 때까지 할당된 메모리 조각을 사용하거나 재활용할 수 없음을 의미합니다.

가비지 수집기는 주기적으로 개체를 검색하고 각 개체에 대한 참조가 있는 다른 개체의 수를 계산합니다. 객체에 0개의 참조가 있거나(다른 객체가 이를 참조하지 않음) 객체에 대한 유일한 참조가 순환이면 객체의 메모리를 회수할 수 있습니다.

setTimeout의 첫 번째 매개변수가 함수 대신 문자열을 사용하면 메모리 누수가 발생합니다.

클로저, 콘솔 로그, 루프(두 개체가 서로 참조하고 서로 유지하면 루프가 생성됨)

메모리 해제 방법: "null

에 값 할당

메모리 누수가 발생하는 경우:

1, 예상치 못한 전역 변수로 인한 메모리 누수

원인: 전역 변수는 재활용되지 않습니다.

해결책: 엄격 모드를 사용하여

2. 클로저로 인한 메모리 누수

원인: 클로저는 함수 내에서 지역성을 유지할 수 있습니다.

해결책: 이벤트 핸들러를 외부에서 정의하거나, 클로저에 문의하거나, 이벤트 핸들러를 정의하는 외부 함수에서 DOM에 대한 참조를 삭제하세요.

. 원인: 다른 곳에서 삭제되었음에도 불구하고 개체에 여전히 DOM 참조가 있습니다.

해결 방법: 수동 삭제

4. 타이머 또는 콜백을 잊었습니다.

원인: 타이머에 DOM 참조가 있습니다. DOM이 삭제되었지만 타이머는 여전히 남아 있으므로 DOM은 여전히 ​​메모리에 있습니다.

해결 방법: 타이머와 DOM을 수동으로 삭제하세요

5. 하위 요소 참조로 인해 메모리 누수가 발생합니다. 원인: p. li가 이 p를 얻으면 p가 li을 간접적으로 참조하므로 li가 지워지더라도 여전히 메모리에 남아 있으며 li가 삭제되지 않는 한 해당 부모 요소는

해결 방법: Qing Kong을 수동으로 삭제하세요.

관련 권장 사항:

JavaScript를 사용하여 메모리 누수 방지 및 메모리 관리 기술_javascript 기술


JS 메모리 누수의 여러 상황에 대한 자세한 설명_javascript 기술

위 내용은 js 메모리 누수는 무엇을 의미합니까? JS 메모리 누수 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.