2013-10-11 6 views
1

저는 AngularJS 앱을 완성했습니다. 기본적으로 많은 (400+) 행이 $resources을 통해로드 된 테이블이 표시됩니다. 데이터는 정렬 및 검색이 가능하며 응용 프로그램은 약간 느린 로딩 (2s +)이고 예, 나는 $cacheFactory을 사용했습니다. 나는 얇아서 RAM 문제입니다.큰 데이터를 다루는 방법

검색, 정렬 또는 스크롤 후에 자동으로 100 개의 항목을로드하고 다시로드하는 것을 고려했습니다. 이렇게하면 앱 속도가 빨라지지만 검색 및 정렬 속도가 느려집니다.

Angular에서 어떻게 처리하겠습니까?

+1

400 개 이상의 행 데이터 그리드가 없습니다. – zsong

+0

확인할 수있는 것은 [AngularJS Batarang] (https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk)입니다. 이는 모든 항목 (거의 확실하게)을 표시하거나 기억. – TheHippo

+0

데이터를 표시하기 위해'ng-repeat'를 사용한다고 가정 할 때이 질문은 사용중인 Angular.js 버전에 따라 다를 수 있습니다. 'ng-repeat'는 1.2에서 훨씬 빨라졌습니다. 그러나 당신은 질문을 모호하게하고 실제로 답을줍니다. – TheHippo

답변

5

대용량 데이터 세트를 처리 할 때 어떤 데이터가 양방향 데이터로 연결되어야하는지 결정할 때는 매우주의해야합니다. 그렇지 않으면 $ watch 식으로 DOM 및 CPU가 압도됩니다.

필요한 경우 데이터를 한 번만 바인딩하는 지시문 집합을 만들었습니다. - 한 번에 할당 된 값으로 요소에 어떤 속성을 설정하고 시계 리스너를 추가하지

https://gist.github.com/btm1

세트 - ATTR :

는 여기에 내가 도움이되어야한다고했습니다 세에 대한 링크입니다. U를 사용하여 클래스 또는 데이터 속성 또는 ID를 설정할 수 있습니다.

set-if - 표시 또는 숨기기 또는 전환 대신이 옵션을 사용하십시오. 한 번만 평가되고 DOM에서 항목을 제거하는 if 문입니다.

set-repeat - 특히 반복되는 내용이 변경되지 않으므로이 항목은 단지 한 번만 반복됩니다.

대부분의 데이터가 양방향 데이터 바인딩 일 필요가 없기 때문에 set-text, set-html, set-href, set-source 및 다른 것들을 많이 사용합니다.

+0

답변 해 주셔서 감사합니다. 나는 오늘이나 내일 지시를 시험 할 것이다. 나는 왜 Angular가 그 (것)들을 안으로 건설하지 않은지 생각해 본다. –

+0

np 당신이 도움이되는 경우에 나의 대답을 투표하십시오. – btm1

관련 문제