스코프 도입의 설계 결정 중 하나는 메모리 관리를 용이하게하는 것이 었습니다. 모델의 공간을 하위 부품 (범위)으로 분할하여 모델의 불필요한 부분 (범위)을 제거하고 필요할 때 새 항목을 추가 할 수 있습니다. 그렇습니다. 범위는 전체 메모리 관리 퍼즐의 중요한 부분입니다.
ng-view
에 관한 특정 질문에 대해서는이 지시어는 현재 활성보기에 대해서만 범위를 유지합니다. ng-view
은 범위 생성 (및 범위 삭제) 지시문 중 하나입니다. 새보기를 탐색 할 때 자동으로 새 범위를 작성하고 이전보기와 연결된 범위를 자동으로 삭제합니다. 이는 AngularJS source code에서 쉽게 확인할 수 있습니다.
고려해야 할 유일한 메모리 소비 부분은 네트워크를 통해 템플릿을 가져 오는 것입니다. 한 경로에서 참조 된 모든 템플릿은 $templateCache
에 캐시됩니다. 앱에서 특정 병목 현상 병목 현상을 해결할 수 있다고 판단 할 경우 템플릿을 제거하지 않아도됩니다. 우리는 단지 그것이 메모리 소비를위한 거래 시간 (네트워크 시간)이라는 것을 깨달을 필요가 있습니다.
간단히 말해서 ng-view
에 대한 자체 범위 관리를 실시 할 필요가 없습니다. 범위 유지가 있으면 버그로보고해야합니다.
예, js에 가비지 수집이 있습니다. 그러나 사용중인 것으로 믿는 어떤 것도 수집하지 않습니다. 각도를 사용하면 $ 범위가 아직 사용 중이라고 가정하므로 절대로 수집하지 않습니다. 그래서 수집 할 수 있도록 Angular에서 무엇을해야하는지 묻습니다. – mfrancis107
항상 "삭제"를 사용할 수 있습니까? –
@KGChristensen 그건 어떻게'delete' 작동하지? – rounce