javascript - 未定义的 ng-bind 是否比 ng-bind 和 ng-show 更昂贵?

标签 javascript angularjs

假设toShowVar我们未定义,哪个更昂贵?

<span ng-bind="toShowVar" ng-show="toShowVar"></span>

<span ng-bind="toShowVar"></span>

如果变量未定义,后者显然不会在屏幕上打印任何内容。

最佳答案

为了解释这一点,首先,ng-showng-bind 都以相同的优先级 级别运行。没有任何东西可以支持 ng-show 来提高性能。

这里隐藏内容根本不需要ng-show。 ng-show 也将开始监视相同的内容(此处为 toShowVar),并将在其注册的监视程序上执行(通过添加 ng-hide 类将 display 属性更改为 none)。 为了解释更多,如果您使用 ng-show='false' 并在进一步操作中将 toShowVar 更改为某些文本,并访问 DOM通过调试器工具,您可以检查更新的文本是否仍然可用。因此,显然 ng-show 不会在这里增加任何性能优势。 如果您使用ng-if(以比两者更高的优先级运行),它将从DOM中删除元素,并且后续的观察者在重新渲染之前不会处于事件状态到 DOM,所以即使在 ng-if 的情况下,你也会运行一些额外的东西,所以它不会像 ng-bind 那样更快,但比 ng- 更快绑定(bind)ng-show thgother。

注意:如果跨度对 CSS 有一定影响(可能是内联、层次结构父级、或任何在 UI 中可见的),即使它是空的(例如边框),否则,外观和感觉都是相同的。

关于javascript - 未定义的 ng-bind 是否比 ng-bind 和 ng-show 更昂贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44926318/

相关文章:

javascript - 自定义 DatePicker Angular Formly 字段不会出现验证错误消息

c# - ASP.NET Web Api 与 Node.js

javascript - 基本的javascript华氏/摄氏计算器

javascript - Chrome 扩展程序在将字符串下载到文件时提供文件名

javascript - 导致 infdig 的过滤器/函数

javascript - 信息窗口 AngularJS 中的按钮

javascript - 我在解决这个动态规划问题的方法中缺少什么? (Leetcode 740。删除并赚取)

javascript - Angular ng-show 多个条件(不超过 3 个工作)

javascript - Angularjs ngRoute 不工作 : Uncaught Error: [$injector:modulerr]

jquery-ui - 在 Angular 指令中使用多个日期选择器