Angular性能优化

本文探讨了Angular应用性能优化的六个关键点:减少监控值、优化数据比对、提升索引性能、降低数据大小、数据结构扁平化以及总结优化策略。通过实例分析,解释了如何在开发中实施这些优化措施,以提升Angular应用的运行效率。

优化Angular应用的性能
MVVM框架的性能,其实就取决于几个因素:

1.监控的个数
2.数据变更检测与绑定的方式
3.索引的性能
4.数据的大小
5.数据的结构

我们要优化Angular项目的性能,也需要从这几个方面入手。

1. 减少监控值的个数
监控值的个数怎么减少呢?
考虑极端情况,在不引入Angular的时候,监控的个数是为0的,每当我们有需要绑定的数据项,就产生了监控值。
传统的模板,是静态模板,将数据代入模板之后生成界面,之后数据再有变化,界面也不会变。但Angular的这种“模板”是动态的,当界面生成完毕,数据产生变更的时候,界面还是会更新。
这是Angular的优势,但我们有时候也会因为使用不当,反而增加困扰。因为Angular采用了变动检测的方式来跟踪数据的变化,这些事情都是有负担的,很多时候,有些数据在初始化之后就不再会变化,但因为我们没有把它们区分出来,Angular还是要生成一个监听器来跟踪这部分数据的变化,性能也就受到牵累。
在这种情况下,可以采用单次绑定,仅在初始化的时候把这些数据绑定,语法如下(这个功能在1.3才加上,1.2之前都没有这个功能,而且1.3放弃了对IE8的支持,有点不完美):

<div>{
   
   {
   
   ::item}}</div>
<ul>  
  <li ng-repeat="item in ::items">{
   
   {
   
   item}}</li>
</ul>

这样的数据就不会被持续观测,也就有效减少了监控值的数目,提高了性能。

2. 降低数据比对的开销
这一个环节是从数据变更检测与绑定的方式入手,从数据到界面的更新,一般就两种方式:推、拉。推就是在set的时候,主动把与之相关的数据更新,大部分框架是这种方式。

function Employee() {
   
   
    this._firstName = "";
    this._lastName = "";

    this.fullName = "";
}
Employee.prototype = {
   
   
    get firstName(){
   
   
        return this._firstName;
    },
    set firstName(val){
   
   
        this._firstName = val;
        this.fullName = val + " " + this.lastName;
    },
    get lastName(){
   
   
        return this._lastName;
    },
    set lastName(val){
   
   
        this._lastName = val;
        this.fullName = this.lastName + " " + val;
    }
};

拉就是set的时候只改变自己,关联数据等到用的时候自己去取。比如:

function Employee() {
   
   
    this.firstName = "";
    this
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值