2017-02-01 1 views
0

Wir haben eine Chat-Anwendung. Um den Chatverlauf anzuzeigen, verwenden wir ng-repeat. Wenn die Anzahl der Datensätze im Verlauf mehr als 100 beträgt, ist die Eingabe in das Textfeld für neue Nachrichten verzögert. Wenn ich etwas in ein Textfeld eintippe, dauert es etwa 0,5 bis 1 Sekunden, um dieses Zeichen im Textfeld anzuzeigen. Diese Verzögerung kommt nicht, wenn die Anzahl der Datensätze in ng-repeat weniger ist.Es gibt eine Verzögerung in Textfeld in Angularjs Anwendung eingeben

Wie wird das Problem gelöst?

Antwort

0

Es ist offensichtlich ein ng-repeat Performance-Problem. Sie können darüber hinwegkommen, indem Sie "Track by" verwenden.

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

nicht ng-repeat Chat Geschichte Verwenden Sie, weil Angular Beobachter in ng-repeat zu jeder Zeile unterhält. Sie könnten auch einmalige Bindungen in ng-repeat und track by versuchen, aber ich würde alte DOM-Manipulation im Historien-Widget empfehlen. Da die Geschichte normalerweise unveränderlich ist und nur anhängig ist, gibt es keinen Grund, sie unter die Kontrolle von Angularjs zu stellen.

+0

Danke für die Antwort .. Old-Style-DOM-Manipulation bedeutet, html mit innerHTML() oder append() html? Was sind die anderen Möglichkeiten der DOM-Manipulation? – RohitV

+0

Ja, das sind sie. Wenn Sie jQuery nicht verwenden, dann betrachten Sie 'element.appendChild (..)' und 'element.innerHTML' – Dfr

+0

danke .. Gefunden einen ähnlichen Beitrag https://www.codeproject.com/tips/1101082/angularjs-n-repeat- Alternativ-Ansatz – RohitV

Verwandte Themen