Рендеринг строк таблицы без привязки к производительности

Я использую 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 строк звучат абсурдно.

Другие вопросы по тегам