Показать сообщение отдельно
  #1 (permalink)  
Старый 09.10.2013, 01:02
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Angular: Performance optimization / Оптимизация производительности
Всем привет

В этой теме хотелось бы обсудить вопрос оптимизации производительности в ангуляре: как правильно писать код; чего следовало бы избегать; рецепты оптимизации производительности и т.п.

---

Ниже выжимка из всей темы

СОВЕТЫ ПО ОПТИМИЗАЦИИ ПРОИЗВОДИТЕЛЬНОСТИ

расширенное объяснение по каждому пункту можно найти почитав тему
  1. Если возможно то не слушать объекты и массивы целиком
  2. Без крайней нужды не вешать WATCH на функции
  3. Не вызывать
    $scope.$apply();
    $scope.$digest();
    
    слишком часто (например, в обработчиках событий scroll или mousemove)
  4. Не выводить в
    <element ng-repeat="..."></element>
    
    тысячи элементов, а вывести первые элементы и сделать динамическую подгрузку
  5. Если элемент скрыт с помощью ng-show или ng-hide
    <element ng-show="false"></element>
    <element ng-hide="true"></element>
    
    и внутри него есть тяжелые вычисления, вероятно, имеет смыл использовать [ng-if|ng-switch] чтобы их избежать
  6. Использовать синтаксис
    <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, а не по значению
  7. Обновлять текущий и вложенные скопы
    $scope.$digest();
    
    а не все приложение
    $scope.$apply();
    
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 25.01.2014 в 03:39. Причина: добавлены советы
Ответить с цитированием