2017-02-06 2 views
4

약 200 페이지의 앵귤러 2 응용 프로그램을 만들 것입니다. 게으른로드, 열정적 인로드 및 사전로드가 가능하다는 것을 알고 있습니다. 사용자가 게으른로드 된 페이지로 이동 한 다음 페이지를 떠나는 경우 메모리에서 해제합니까? 사전로드 된 페이지는 어떻게됩니까? 페이지가 미리로드 된 이후로 주변에 머물러 있습니까? 내 관심은 최종 사용자가 너무 많은 페이지로 이동하거나 응용 프로그램이 초기로드에 너무 오래 걸리는 경우 브라우저에서 메모리가 부족해질 것이라는 점입니다.각도 2는 페이지를 어떻게 언로드합니까?

+1

언로 드는 것이 좋은 질문이며 이에 대한 좋은 대답이되기를 바랍니다. 하지만 200 쪽? 너 정말 필요해? 가능한 한 자주 구성 요소를 재사용 할 수 없으며 이러한 구성 요소가있는 페이지를 만들 수 없습니까? 200 페이지에 대한 정보를 추가하십시오 :) – Maxime

+1

예. 200 페이지가 정말로 필요합니다. 해당 페이지 200 개 모두에 구성 요소가 공유됩니다. 그러나 200의 유일한 페이지가있을 것이다. 이것은 여러 팀이 2 년 동안 구축 할 매우 큰 응용 프로그램입니다. –

+0

앱에 대해 매우 궁금하신 분 : 오픈 소스입니까? 나는 그것을 계속 지켜봐 주어서 기뻐할 것입니다. (누군가가 아이디어를 가지고 있지만 분명히 운이 없는지 지터에서 귀하의 쟁점을 공유했습니다.) – Maxime

답변

5

예, "페이지"로 구성 요소를 의미하는 경우, 구성 요소를 의미하는 경우 해당 구성 요소는 출시되고 GC는 정리할 수 있습니다 ... 길게 구독하는 등의 일을하지 않으면 -lived Observable (예 : router... 또는 작성한 서비스).

OnDestroy 라이프 사이클 후크를 살펴보십시오. ngOnDestroy()을 구현하십시오. 그것이라는 것을 확인하기 위해 console.log을 넣으십시오. 그 곳에서 핸들러를 분리 할 수 ​​있습니다. "

그러나 다시"페이지 "를로드하지 마십시오. 게으른로드 모듈. 이들은 코드입니다. 코드가로드되면 브라우저 웹 페이지 AFAIK를 다시로드하지 않고 코드를 언로드 할 수 없습니다. 이는 브라우저/JavaScript의 한계이며 Angular 한도가 아닙니다. 그것은 당신의 걱정입니까?

특히 200 페이지 정도의 작은 응용 프로그램의 경우 응용 프로그램 코드 만 클라이언트 메모리를 불어 넣는 경우는 거의 없습니다.

+0

도움 주셔서 감사합니다. 예, 모듈을 의미했습니다. 그래서 Angular 2는이 경우 ASP.NET MVC와 유사 해 보이지만 서버에있는 대신 모듈을로드 및 언로드하는 클라이언트에 있습니다. –

관련 문제