2017-02-01 56 views
0

我們有一個聊天應用程序。要顯示聊天記錄,我們正在使用ng-repeat。當歷史記錄的數量超過100時,新消息文本框中的輸入存在滯後。當我在文本框中鍵入內容時,大約需要0.5到1秒才能在文本框中顯示該字符。當ng-repeat中的記錄數量減少時,這種滯後不會發生。在Angularjs應用程序中輸入文本框中存在延遲

如何解決此問題?

回答

0

這顯然是一個ng-repeat性能問題。你可以通過使用「追蹤」來克服它。

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

不要使用ng-repeat的聊天記錄,因爲角維持觀察員每一行ng-repeat。您也可以嘗試一次性綁定ng-repeattrack by,但我會推薦歷史窗口小部件中的舊式DOM操作。因爲歷史通常是不變的附加事物,所以沒有必要將它放在Angularjs的控制之下。

+0

感謝您的回覆..舊樣式的DOM操作意味着使用innerHTML()或append()html附加HTML? DOM操作的其他方式是什麼? – RohitV

+0

是的,他們是。如果你不使用jQuery,那麼考慮'element.appendChild(..)'和'element.innerHTML' – Dfr

+0

謝謝..發現有一個類似的帖子https://www.codeproject.com/tips/1101082/angularjs-ng-repeat-替代的方法 – RohitV