2016-10-01 7 views
7

Как повысить производительность при многократном рендеринге шаблона с помощью ngFor? У меня есть ситуация, когда мне нужно показать тот же шаблон, основанный на count.I делаю это, используя * ngFor. Шаблон загружается правильно, но я беспокоюсь о производительности. Поскольку мне нужно многократно показывать один и тот же контент несколько тысяч раз, тогда производительность будет медленной после загрузки шаблона. Я сделал демонстрацию plunker здесь http://plnkr.co/edit/qTj4SVRnFD6N15PZ1GWC?p=preview. пожалуйста, увеличьте количество групп форм в formarray с разницей в 1000, тогда система будет медленной или разрывается. Это, как я создать formarray,Медленный отрисовка шаблона с использованием углового2 * ngFor

 for(var i=0;i<100;i++){ 
    let dummyFormGroup=this.fb.group({ 
    'name':[''], 
    'place':[''] 
    }) 
    this.dummyFormArray.push(dummyFormGroup); 
} 

И я визуализации элементов управления в formarray используя ngFor как этот

<div *ngFor="let formgroup of dummyFormArray.controls" style="display:flex;flex-direction:row"> 
<p> 
    <label>Name:</label> 
    <input type="text" [formControl]="formgroup.controls['name']" /> 
</p> 
<p> 
<label>Place:</label> 
<input type="text" [formControl]="formgroup.controls['place']" /> 
</p> 

Может кто-нибудь пожалуйста, предложите мне подход, при котором я могу увеличить производительность после загрузки шаблона? Потому что я в порядке с ожиданием загрузки шаблона, если он должен отображать тысячи записей. Но как только шаблон готов, я хочу, чтобы система была быстрой в этом случае, используя * ngFor. Кто-нибудь, пожалуйста, помогите мне в решении этой проблемы. Спасибо!

+0

Вы можете уточнить, что вы подразумеваете под медленным? Это сообщение или предварительный рендер? – Ced

+0

Его медленный после Post renderer –

+0

И когда шаблон готов, редактирование в окне ввода текста отображается медленно. Это проблема с моей логикой кода? я имею в виду. * ng Запускать любые события в фоновом режиме после загрузки шаблона? –

ответ

4

По умолчанию угловые проверки для обнаружения изменений в каждом компоненте дерева.

Так, например, если вы привяжете ключ к своим входным компонентам, все будет довольно грязно.

Подробнее об обнаружении изменений здесь: https://stackoverflow.com/a/39802466/4299560

0

Вы можете также улучшить производительность, только рендеринг видимых шаблонов. Предположим, вы начали рендеринг 10 шаблонов, и когда вы начинаете прокрутку (в нижней части страницы), вы оказываете больше. Веб-браузер занимает некоторое время, чтобы отобразить все DOM-элементы. Рендеринг «точно в срок» лучше, чем рендеринг «все-в-одном». Все данные по-прежнему будут в памяти, поэтому можно будет сортировать или искать определенные шаблоны.

Смежные вопросы