我們有一個聊天應用程序。要顯示聊天記錄,我們正在使用ng-repeat。當歷史記錄的數量超過100時,新消息文本框中的輸入存在滯後。當我在文本框中鍵入內容時,大約需要0.5到1秒才能在文本框中顯示該字符。當ng-repeat中的記錄數量減少時,這種滯後不會發生。在Angularjs應用程序中輸入文本框中存在延遲
如何解決此問題?
我們有一個聊天應用程序。要顯示聊天記錄,我們正在使用ng-repeat。當歷史記錄的數量超過100時,新消息文本框中的輸入存在滯後。當我在文本框中鍵入內容時,大約需要0.5到1秒才能在文本框中顯示該字符。當ng-repeat中的記錄數量減少時,這種滯後不會發生。在Angularjs應用程序中輸入文本框中存在延遲
如何解決此問題?
這顯然是一個ng-repeat性能問題。你可以通過使用「追蹤」來克服它。
<div ng-repeat="item in items track by $index"></div>
不要使用ng-repeat
的聊天記錄,因爲角維持觀察員每一行ng-repeat
。您也可以嘗試一次性綁定ng-repeat
和track by
,但我會推薦歷史窗口小部件中的舊式DOM操作。因爲歷史通常是不變的附加事物,所以沒有必要將它放在Angularjs的控制之下。
感謝您的回覆..舊樣式的DOM操作意味着使用innerHTML()或append()html附加HTML? DOM操作的其他方式是什麼? – RohitV
是的,他們是。如果你不使用jQuery,那麼考慮'element.appendChild(..)'和'element.innerHTML' – Dfr
謝謝..發現有一個類似的帖子https://www.codeproject.com/tips/1101082/angularjs-ng-repeat-替代的方法 – RohitV