0

각도 1.4를 사용하고 있습니다. 일반적으로 ng-repeat는 표와 같은 항목에 대해 많은 수의 행을 렌더링 할 때 성능 문제가 발생할 수 있음을 알고 있습니다. 그러나 ng-repeat 또는 일부 대체 반복을 사용하여 테이블에 대한 데이터 배열을 렌더링하는 최적의 방법이 있는지 궁금합니다.성능을 위해 바인딩되지 않은 테이블 행 렌더링

보고서 용 데이터를 출력하기 때문에 바인딩이 필요하지 않습니다. 일회성 바인딩과 같은 몇 가지 제안을 시도했지만, 여전히 좋은 시간이 걸립니다 (1000 레코드 정도의 경우 10 초 이상). 제가 시도한 다른 비 앵귤러 메서드는 HTML을 백엔드에서 미리 렌더링 한 다음 데이터 배열 대신 HTML을 반환합니다. 그리고 HTML에 요소를 추가 한 사용자 지정 지시문이 있습니다. 이것은 심지어 2000 행에 대해서도 1 초도되지 않았습니다 (분명히 Angular를 사용하지 않았기 때문에 분명합니다).

하지만 Angular에서 동일한 작업을 수행 할 수 있으면 좋을 수도 있고 각도 측 컨트롤러에서 비슷한 작업을 수행해도 좋을 것입니다. 모든 입력을 부탁드립니다. 당신은 중계기의 각 항목에 :: 구문을 추가해야

<ul ng-repeat="item in ::items"> 
    <li>{{ ::item.name }}</li> 
</ul> 

참고 :

+0

왜 1000 개의 행을 렌더링해야하는지 궁금합니다. – ChiefTwoPencils

+0

일반적으로 페이지 매기기를 사용하지만 사용자는 한 번에 모든 데이터를 보거나 원하는 레코드를 찾기 위해 Ctrl + F를 원합니다. 비즈니스 요구 사항이 더 많습니다. 너무 일반적이지는 않지만 실행되는 보고서는 날짜 범위를 기반으로하므로 큰 시간 프레임을 선택하면 레코드 수가 커질 수 있습니다. – kenshin9

+0

그것은 그 때 그것이 무엇인지 추측합니다. 나는 [ng-repeat을 간과하게 사용] (http://stackoverflow.com/documentation/angularjs/1921/profiling-and-performance/6270/7-simple-performance-improvements#t=201702202044026701)에 "other 접근법 "을 사용합니다. 진실은 그들 모두가 그들을 볼 수 없다는 것입니다, 당신은 단지 그들이 할 수있는 인식과 당신이 언급 한 다른 기능을 여전히 얻을 수 있다는 인식을 주어야합니다. – ChiefTwoPencils

답변

0

이 바인딩 한 방법을 사용할 수 있습니다.

논리가 얼마나 복잡한 지 잘 모르겠지만 1000 행의 경우 10 초가 터무니없는 것처럼 들립니다.