感觉
我本是java出身,在做了几个angular的项目后,发现angular身上有java框架的影子,在在网上看看有没有人跟我有同感,发现确实如此。同为Google的子嗣,看来基因真的很强大,不过女大18变的NG2.0是不是脱胎换骨,我会去跟这位女子更亲密的接触看看;
言归正传。
当绑定对象超过 2000 时性能会明显下降,当然这不是一个精确的数字。很明显,针对这一点,我们应该减少双向绑定的数据,比如使用once-bound
,像这样``(v1.3+)。
在网上见到过一段计算render时间的代码,既是分享也是记录:
当然也可以使用Batarang(chrome的插件)来进行性能测试;
尽量不要使用内联的方法计算数据
ng-if来代替ng-show
ng-if会阻止渲染。允许是可以使用ng-if来代替ng-show。
防抖动输入
在较早的版本中可能还要自己写代码,延迟$digest()循环,但是v1.3后,可以直接使用$debounce
(详细的options可以查看API):
合理使用$destroy
AngularJS在销毁一个scope和把一个scope从它的父级移除之前会广播一个$destroy事件。监听这个事件对清理任务和资源是至关重要的,否则可能会继续消耗内存或CPU。