Я работал над сложной страницей angular, которая вызывала проблемы с производительностью. Чтобы выделить проблему, я создал здесь скрипт http://jsfiddle.net/4ex2xgL1/3/.
По существу проблема с производительностью вызвана операцией ng-class, которая имеет в ней функцию.
<span class="done-{{todo.done}}" ng-class="myfunction()">{{todo.text}}</span>
Пролет в ng-повторе. При запуске скрипта можно увидеть, что ng-класс запускается несколько раз, когда страница загружается, и на каждом из них он набирается столько раз, сколько количества элементов в списке TODO.
Это намного проще, в моем случае у меня есть 780 элементов на моей странице, и функция заканчивается оценкой aroung 3000 раз!
Одно из решений, которое мы видели, - это разбить область действия, но это приведет к перезаписи моего приложения.
Мы также пробовали https://github.com/Pasvaz/bindonce, но, похоже, он не работает с высокодинамичным контентом.
Любые мысли?