gpt4 book ai didi

javascript - AngularJS - 当模型变大时调用 $apply() 会影响性能吗?

转载 作者:行者123 更新时间:2023-11-28 09:06:50 25 4
gpt4 key购买 nike

我是 AngularJS 的新手,我真的很喜欢 the way $apply() works 。我现在正在制作一个聊天应用程序。每次客户端收到 friend 的消息时,模型都会在 Angular 没有通知的情况下发生更改,因此我需要调用 $apply()。

我只是做了一个快速测试,模型中存在 10k 条消息,每次有新消息到来时,$apply 需要 1 秒来完成其脏检查。

所以,我的问题是:Angular 真的适合这种类型的应用程序吗?

最佳答案

我在监控远程终端时遇到了同样的问题。您真的需要在模型中存储消息吗?通过使用指令将消息存储在 DOM 中,嵌入可能对您有用吗?

Fiddle .

HTML:

<div id="container">
<button ng-click="add(test)">Add message</button>
<ng-message>Text 1</ng-message>
<ng-message>Text 2</ng-message>
<ng-message>Text 3</ng-message>
</div>

JS:

angular.module("main", [])
.controller("MyCtrl", function($scope) {
$scope.test = 'Test Message';
})
.directive("ngMessage", function ($compile) {
return {
template: '<div ng-transclude><b>Heading <br></b></div>',
restrict: 'E',
transclude: true,
link: function (scope, elm) {
scope.add = function(text){
elm.after($compile('<ng-message>' + text + '</ng-message>')(scope));
}
}
};
});

关于javascript - AngularJS - 当模型变大时调用 $apply() 会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16934473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com