0

저는 Pages를 활성화하고 PageNumber에 따라 테이블 (ng-repeats)을 표시하는 일종의 TabControl을 만들었습니다. 이 테이블은 자체 지시문 (직접 만든 격자 지시문)입니다.ngIf 어플리케이션이 느려집니다

이제 모든 페이지가 ngIf를 사용하고 PageNumber가 설정 될 때까지 렌더링되지 않지만 탭 페이지가 더 적은 경우 응용 프로그램이 더 많은 탭 페이지를 사용할 때보 다 빠릅니다.

나는 그것이 프로파일 러를 사용할 때 핵심 요소에 도달하지는 못했지만 컨텐츠를 컴파일하기 때문에 그렇다고 믿습니다. "compileNodes"가 많이 호출된다는 것을 알 수 있습니다.

누구나 같은 경험이 있습니까? 해결 방법에 대한 아이디어가 있습니까?

편집 : 무슨 또한 흥미로운 것은 , 즉 내가 (단일 페이지 응용 프로그램 내부 링크)를 tabcontroll에 가서 처음으로 더 빨리 그리고 다음 시간이 느리다. 마치 다른 콘텐츠로 이동했을 때 전체 탭 컨트롤이 삭제 되더라도 무언가가 기억 된 것처럼.

편집 2 : 나는 아직도 그것을 알아 내려고하고있다. ngRepeat로 할 수있는 또 다른 TabControl 내에서 TabControl을 보여주고 있기 때문에 ngRepeat 일 수도 있습니다. 흥미롭게도 충분히 : 처음으로 내 페이지를 방문하면 속도가 빠릅니다. 그런 다음 다른 페이지를 클릭하면 돌아올 때 속도가 느립니다! ngRepeat가 캐시에 일부 항목을 유지합니까 ?? Browser-Profile은 jQuery의 data_user -> cache에 free'd가 아닌 몇 가지 항목이 있음을 알립니다. (클릭 수당 9MB의 데이터까지 Chrome에서!)

+0

preformance 카운터에 batarang을 사용해 보셨습니까? https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk –

+0

DOM에로드 된 모든 단일 페이지가 있고 'ng-if's로 제거 되었습니까? – user2943490

+0

@Alex Choroshin : 예 Batarang을 사용했습니다. 그러나 이동 바인딩 등이있는 다른 페이지보다 왜 시간이 오래 걸리는지 알 수는 없습니다. – NoRyb

답변

0

탭보기에서 ng-switch을 대신 사용하므로 ng-if입니다. 왜냐하면 모든 경우에 탭을 표시하고 표시 할 탭으로 점프해야하기 때문입니다.

+0

이것은 의미가 있으며 ng-switch로 바꿨지 만 그렇지 않았다. 성능면에서 무엇이든 변경하십시오. 사례에 대한 표현은 매우 간단하며 (PageNumer === 1) 비용이 많이 들지는 않습니다. 페이지를 그대로두고 (컨디션과 함께) 컨텐츠 (하나의 elemement - 그리드 지시어)를 제거 할 수 있습니다. – NoRyb

+0

@NoRyb plunker를 제공하여 볼 수 있습니까? – Claude

+0

나는 수수께끼를 만들었습니다 : http://jsfiddle.net/g23pxwh8/ 불행히도 저는 "진짜"지시어를 제공 할 수 없습니다. 그러나 그것이 내가 가진 전반적인 문제입니다. 내 생각에,이 각도는 지시어를 컴파일하지만 한 페이지 만 활성화되어있어 느리게 만듭니다. – NoRyb