많은 데이터를 포함하는 AngularJS 무한 스크롤
그래서 AngularJS를 사용하여 무한 스크롤 테이블을 작성하려고 합니다.http://jsfiddle.net/vojtajina/U7Bz9/
문제는 jsfiddle의 예에서 100만 개의 결과를 얻을 때까지 스크롤을 계속하면 브라우저 속도가 느려진다는 것입니다. 지금 냐냐 because because because because because because because because because because 가 있기 입니다.1,000,000125.19달러 '아까', '아까', '아까', '아까', '아까', '아까' 같은 것만 요.1000items 내에서 에 표시되며, 있던 는 $scope.items의 범위 내에 .1000.
예: I first " : " " " " " " " " " " 。10 「」( 「」) 중)1,000,000내가 보기만 해도10첫, " " "1000결과는 실제로 로드됩니다.맨이다 라는 것을 볼 수 .10.맨가 될 예요.10서버에서 결과를 다시 로드해야 합니다.
저는 ExtJs와 함께 수천 개의 결과를 포함하는 무한 스크롤 목록을 만든 프로젝트를 수행했습니다.이를 처리하기 위한 ExtJ의 방법은 현재 결과 페이지를 로드한 다음 몇 페이지의 추가 결과도 미리 로드하는 것이었습니다.했던 것은 「아예」, 「아예」이었다.10로컬로 저장된 결과 페이지.
그래서 제 질문은 이걸 어떻게 AngularJS에서 구현해야 할까요?저는 코드를 많이 제시하지 않았기 때문에, 사람들이 코드화된 답을 줄 것이라고는 생각하지 않지만, 적어도 어느 방향으로 가야 할지 조언해 줄 것으로 생각합니다.
몇 가지 사항:
"무한 스크롤"에서 "1,000,000" 행까지 수백만 개의 DOM 노드를 생성했다고 해서 프레임워크에 관계없이 문제가 발생할 수 있습니다(각 레코드에 여러 요소가 있다고 가정).
도입에 대해 검토하고 있는 것
<li ng-repeat="item in items">{{item.foo}}</li>또는 그와 같은 것은 한 가지 큰 이유로 인해 매우 빠르게 문제가 발생합니다.{{item.foo}}}이와 는 ngBind를 합니다.$watch이 필드에서는 함수 참조 등의 형태로 많은 오버헤드가 발생합니다.10,항목 10,000개에서각 10,000개 항목에 대해 10,000~20,000개의 추가 기능 참조가 필요합니다.
이 경우 데이터를 최신 상태로 유지할 뿐만 아니라 "너무 멀리 있는" DOM 요소의 추가 및 삭제를 처리하는 지시문을 작성합니다.이로 인해 발생할 수 있는 대부분의 성능 문제가 완화됩니다.
...좋은 무한 스크롤은 간단하지 않습니다.죄송합니다.
angular-ui 구현 UI 스크롤이 마음에 들어요...
https://github.com/angular-ui/ui-scroll
...ngInfiniteScroll을 사용합니다.표준 무한 스크롤의 ui-scroll과 가장 큰 차이점은 뷰포트에서 나갈 때 이전 요소가 제거된다는 것입니다.
그들의 판독치로부터...
정의되지 않은 길이의 데이터 요소 목록을 사용자에게 표시하는 일반적인 방법은 목록의 맨 위에 작은 부분으로 시작하는 것입니다. 페이지 공간을 채울 수 있을 만큼만.사용자가 목록을 아래로 스크롤할 때 목록 하단에 추가 행이 추가됩니다.
이 접근법의 문제는 목록 맨 위의 행이 보기에서 스크롤될 때 보이지 않게 되더라도 여전히 페이지의 일부이며 리소스를 소비한다는 것입니다.사용자가 아래로 스크롤하면 목록이 늘어나고 웹 앱 속도가 느려집니다.
이것은 행을 나타내는html에 이벤트핸들러나 각도감시자가 접속되어 있는 경우에 문제가 됩니다.평균적인 복잡도의 웹 앱은 한 줄에 20명의 감시자를 쉽게 소개할 수 있습니다.100개의 행의 리스트에 대해서는, 총 2000명의 워쳐와 느린 앱을 제공합니다.
또한 ui-scroll이 능동적으로 유지됩니다.
당신이 찾고 있는 것은 http://kamilkp.github.io/angular-vs-repeat인 것 같습니다.이것은 가상 스크롤 지시입니다.
Angular의 ng-grid 모듈은JS는 내가 필요로 하는 것을 거의 정확하게 가지고 있다.예제 페이지를 보면 서버 측 처리 예제도 필요한 데이터만 로드하는 무한 스크롤 목록입니다.
어쨌든 댓글 달아주시고 답해주신 분들께 감사드립니다.
최신 URL : ng-grid
ng-infinite-scroll 을 사용해 보십시오.
http://binarymuse.github.io/ngInfiniteScroll/
각도 재료에서 virtualRepeat 확인
뷰포트 영역에 표시되는 행을 UI 스크롤과 같이 동적으로 재사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/14280905/angularjs-infinite-scrolling-with-lots-of-data
'sourcecode' 카테고리의 다른 글
| 워드프레스 투고 수정 시간 변경 방법 (0) | 2023.02.22 |
|---|---|
| 워드프레스 데이터베이스에 새 열 추가 (0) | 2023.02.22 |
| 서브슬라이밍 텍스트용 JSX 포메터가 있나요? (0) | 2023.02.22 |
| mongodb에 날짜/시간을 저장하는 가장 좋은 방법 (0) | 2023.02.22 |
| 하위 테마에서 Wordpress 테마 옵션을 제거하는 방법 (0) | 2023.02.18 |