Задать вопрос
userAlexander
@userAlexander
Верстка наше все)

AngularJS оптимизация ng-repeat, долгий рендеринг страницы, как исправить?

Здравствуйте.
Есть такой список состоящий из 50+ объектов в массиве который соответственно выводиться через ng-repeat в html, как можно оптимизировать рендеринг страницы за счет вывода ng-repeat?

Список
//
var tableUsers = angular.module('tableUsers', []);
tableUsers.controller('tableUsers_list', ['$scope', function($scope){
	$scope.list = [
		{
			id:1,
			initials:'Jana Pallaske',
			yearStart:'2012',
			visits:183202,
			rate:17483,
			ip:'174.100.87.24',
			status:'active'
		},
		{
			id:2,
			initials:'Carolina Schuchardt',
			yearStart:'2011',
			visits:198102,
			rate:22013,
			ip:'140.172.33.10',
			status:'locked'
		}
	]
}]);


Так вывожу это все дело в html
<tr data-ng-repeat="user in list | orderBy:sort:reverse">
	<td>{{user.id}}</td>
	<td>{{user.initials}}</td>
	<td>{{user.yearStart}}</td>
	<td>{{user.visits}}</td>
	<td>{{user.rate}}</td>
	<td>{{user.ip}}</td>
	<td data-status="{{user.status}}">{{user.status}}</td>
</tr>
  • Вопрос задан
  • 1090 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@Demetros
Оптимизировать для чего? У вас эта отрисовка тормозит?
50 элементов вообще ни о чем, но можно сортировку предпросчитывать, т.к. фильтры вызываются достаточно часто.
Можно еще попробовать добавить track by user.id в ng-repeat.
Ответ написан
@Kano
Можно еще убрать двунаправленное связывание через добавление к всем записям два двоеточия перед именем поля, например: {{::user.id}}
Ответ написан
@xbagir
web developer
А вы уверены, что тормозит именно цикл? $scope.list прилетает откуда?
Циклы очень быстрые, и 50 элементов это совсем ничто.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы