javascript - View 模板中的 Angular 表达式是否会降低 Angular 应用程序的性能

标签 javascript angularjs performance

我的应用程序似乎有包含大量逻辑的 View 。我的问题有两个:

  1. View 中的逻辑是否会降低 Angular 应用程序的性能?

  2. 作为最佳实践,在 Controller 中处理此逻辑并将结果存储在 View 可以访问的 $scope 属性中是否更好? 这会提高性能吗?

我们应用程序中的 View 示例(一个简单的):

<div class="small-12 column" id="notificationMsg">
    {{ config.message | translate : config.getMessageParams(notification)}}
</div>

最佳答案

简短回答:

长答案:

您的绑定(bind)必须在每个摘要周期中更新,这会影响所使用的变量。 将值存储在变量中,并且仅在发生变化时才更新它,这将提高您的性能。 然而,只有当您达到一定程度的复杂性时,这才至关重要。只要您的应用程序不会增长太多,这还不会构成威胁。

我不一定将其称为最佳实践,因为它会使您的代码更加复杂并且更难以阅读/理解/维护。 性能并不总是一个问题。当默认情况下它不存在时,它就开始成为一个;)

您可以做的进一步改进是尽可能使用 ng-bind 和 ng-bind html,因为它可以更快地渲染,因为它可以在编译表达式时跳过 angularJS 的一些内部步骤。

所以例如使用

<div ng-bind="foo"></div>

而不是

<div>{{ foo }}</div>

如果可能的话

关于javascript - View 模板中的 Angular 表达式是否会降低 Angular 应用程序的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861773/

相关文章:

angularjs - $http.post().then 与 $q 库?

angularjs - 我可以将范围变量传递到指令的链接函数中,但不能传递到编译函数中, Angular

java - int 上的余数运算符导致 java.util.Objects.requireNonNull?

javascript - 由于装饰器过多,随着内容的增加,Draft js Editor 变慢了

javascript - Karma 覆盖率未达到 100%,但 (0/0)

Javascript:使用 OR 操作数将单个值与多个值进行比较

java - JnetPcap:从脱机文件读取速度非常慢

javascript - HTML 在 Node Js 中显示不正确

angularjs - 在 JavaScript 中初始化 Angular 指令

python - 在pandas中展开dataFrame