假设我有一个包含许多表单元素的 HTML div,这些元素都在观察模型值,如果我在 div 上使用 ng-show、ng-if 或 ng-switch 来隐藏它,这是否会阻止 angular JS 进行脏检查表单元素从而提高我的应用程序的性能?
我认为如果绑定(bind)元素不可见,那么 angular 就不需要检查绑定(bind)到它们的值。
最佳答案
ng-show
和 ng-hide
只会设置一个 CSS display
样式,并且仍然会处理绑定(bind)。然而, ng-switch
将完全注释掉不适用的情况,这反过来意味着那些中的绑定(bind)是 而不是 处理。然而,我同意 Edmondo1984 的答复,我怀疑您是否应该以此为基础做出选择。因此,不要将 ng-show
s 重写为 ng-switch
es!
您可以使用 Chrome 扩展 Batarang 验证这一点,性能选项卡显示哪些 watch 处于事件状态。
关于performance - 隐藏 DOM 元素会提高性能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17919083/