У меня проблема с директивой angular ng-repeat. В настоящее время я работаю над некоторым проектом, в котором из API я получаю список элементов (иногда это может быть 1k элементов), и этот список должен обновляться каждые 5 секунд (он контролирует соответствующий проект).
Когда длина списка немного больше, веб-сайт при повторном рендеринге DOM может "замедляться". Выходит, что angular регенерирует всю DOM (но 95% элемента одинаковы!)
Одним из возможных подходов является установка выражения "track by", например, item.id. Но здесь возникает еще одна проблема, я также хочу восстановить элементы, когда, например, описания были изменены другим пользователем. Поскольку track by является выражением для item.id, изменения в item.description не обновили элемент в DOM.
Есть способ отслеживать несколько свойств? Может быть, какая-то функция? Или может быть сравнение "рукой"?
Любые идеи, образцы кода, которые я бы оценил:)
UPDATE
то, что я обнаружил, когда я установил путь к item.id angular, не перекрещивался с html для элементов, просто обновлял значение в уже созданном элементе и, похоже, "быстрее", а затем удалял и создавал. Раньше я хоть немного отличался.
FIX
Для тех, кто ищет лучшую производительность более > 1k элементов в ng-repeat USE track by item.id, это повысит вашу производительность;)