/ / C'è un ritardo nella digitazione della casella di testo nell'applicazione Angularjs - angularjs, performance, ng-repeat, lag

C'è un ritardo nella digitazione della casella di testo nell'applicazione Angularjs - angularjs, performance, ng-repeat, lag

Abbiamo un'applicazione di chat. Per mostrare la cronologia della chat stiamo usando ng-repeat. quando il numero di record nella cronologia è superiore a 100, non vi è alcun ritardo nella digitazione nella casella di testo del nuovo messaggio. Quando digito qualcosa nella casella di testo ci vogliono da 0,5 a 1 secondi per visualizzare quel carattere nella casella di testo. Questo ritardo non si verifica quando il numero di record in ng-repeat di meno.

Come risolvere questo problema?

risposte:

1 per risposta № 1

Non usare ng-repeat per la cronologia chat, perché Angular mantiene gli osservatori in ogni riga ng-repeat. Puoi anche provare i collegamenti una tantum in ng-repeat e track by, ma raccomanderei la manipolazione DOM vecchio stile nel widget della cronologia. Dato che la cronologia è di solito una cosa immutabile, non ha senso metterla sotto il controllo di Angularjs.


0 per risposta № 2

Ovviamente è un problema di prestazioni ng-repeat. Puoi superarlo usando "track by".

<div ng-repeat="item in items track by $index"></div>