Angular: Performance optimization / Оптимизация производительности
Всем привет
В этой теме хотелось бы обсудить вопрос оптимизации производительности в ангуляре: как правильно писать код; чего следовало бы избегать; рецепты оптимизации производительности и т.п.
---
Ниже выжимка из всей темы
СОВЕТЫ ПО ОПТИМИЗАЦИИ ПРОИЗВОДИТЕЛЬНОСТИ
расширенное объяснение по каждому пункту можно найти почитав тему
- Если возможно то не слушать объекты и массивы целиком
- Без крайней нужды не вешать WATCH на функции
- Не вызывать
$scope.$apply();
$scope.$digest();
слишком часто (например, в обработчиках событий scroll или mousemove)
- Не выводить в
<element ng-repeat="..."></element>
тысячи элементов, а вывести первые элементы и сделать динамическую подгрузку
- Если элемент скрыт с помощью ng-show или ng-hide
<element ng-show="false"></element>
<element ng-hide="true"></element>
и внутри него есть тяжелые вычисления, вероятно, имеет смыл использовать [ng-if|ng-switch] чтобы их избежать
- Использовать синтаксис
<element ng-repeat="item in array track by $index"></element> или
<element ng-repeat="item in array track by item.id"></element>
вместо
<element ng-repeat="item in array"></element>
чтобы отслеживать изменения по индексу или id, а не по значению
- Обновлять текущий и вложенные скопы
$scope.$digest();
а не все приложение
$scope.$apply();
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Последний раз редактировалось nerv_, 25.01.2014 в 03:39.
Причина: добавлены советы
|