Рендеринг строк таблицы без привязки к производительности
Я использую Angular 1.4. Общеизвестно, что ng-repeat может иметь некоторые проблемы с производительностью при рендеринге большого количества строк для таких вещей, как таблицы. Но мне было интересно, существует ли оптимальный способ использования ng-repeat или какой-либо альтернативной итерации для простой визуализации массива данных, которые у меня есть, для таблицы.
Мне не нужно никаких привязок, так как это просто вывод данных для отчета. Я пробовал некоторые предложения, такие как однократное связывание, но это все еще занимает много времени (10 секунд или больше для 1000 записей или около того). Другие неангулярные методы, которые я пробовал, - это предварительный рендеринг HTML на бэкэнде, а затем возврат HTML вместо массива данных. И у меня была специальная директива, которая просто добавила этот HTML к элементу. Это было меньше секунды даже для 2000 строк (очевидно, поскольку я не использовал Angular).
Но было бы неплохо, если бы я мог выполнить то же самое в Angular или даже сделать что-то подобное в контроллере на Angular. Любой вклад будет оценен.
1 ответ
Вы можете использовать одностороннюю привязку для этого:
<ul ng-repeat="item in ::items">
<li>{{ ::item.name }}</li>
</ul>
Обратите внимание, что вы должны добавить ::
синтаксис каждой записи в репитере.
Я не уверен, насколько сложна ваша логика, но 10 секунд на 1000 строк звучат абсурдно.