angular优化方略,闲的没事想重构的人来瞅瞅。

1、减少$watch

减少$watch,减少$watch,减少$watch。不仅仅是$watch监听,还有ng-model,别闲的没事就加个ng-model。页面上不需要修改的东西bindOnce就好了。

2、保留dom

超出的DOM元素会隐藏而不是销毁,如果元素的数量过会儿有增加了,我们会重用这些缓存的元素。网上说的,看起来可行。不过一般没卵用。

3、延迟运行

$timeout,把需要运算或者不需要立即展示的东西扔到下一个事件循环里去。保证首屏加载

4、删除对隐藏dom的监视

网上的说法。我看来,在taps或者什么等等,需要点击显示的东西就不要给它加watch了,点击触发的时候再加。不过有点不好维护。

5、慎用filter

filter在$digest过程中,filter会执行很多次,至少两次。所以可以在controller里注入$filter服务,手动filter

6、慎用事件系统

事件系统也是很耗能,少用为妙。

仅仅就性能而谈,ng大多做后台管理类型的,ng-model还是很多的,可以尽量减少,他们对性能要求也不是很高,注重维护就可能减少一部分性能了,这也是ng被吐槽的一个点。总之放弃ng1,可以试试ng2。

性能据说提升了不少,ts式的强类型也提升性能。最后看了一下ng2的语法,webcomponents,很好维护。

个人还喜欢vue,性能没得说,可直接上移动端。写起来也很舒服。。。

angularjs优化方略的更多相关文章

  1. 【翻译】ExtJS vs AngularJS

    原文:ExtJS vs AngularJS ExtJS和AngularJS是两个行业内领先的富界面开发框架.TechFerry有机会使用Ext JS和Angular JS来开发多个富界面的单页面应用程 ...

  2. AngularJS的加载执行过程

    1. HTML页面的加载,这会触发加载页面包含的所有JS (包括 AngularJS) 2. AngularJS启动,搜寻所有的指令(directive) 3. 找到ng-app,搜寻其指定的模块(M ...

  3. 移动Web开发调研

    背景 在移动互联网浪潮下,移动设备普及,对配置需要考虑移动端设备可访问性.Web作为最贴近用户的配置手段,面向从PC端传统页面,向移动端页面的转型. 概念 PC Web: 面向传统PC电脑的浏览器开发 ...

  4. 移动web开发框架

    纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家族 ...

  5. 常用移动web开发框架研究分析

    纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家族 ...

  6. 移动web app开发框架

    文章地址:http://www.cnblogs.com/soulaz/p/5586787.html jQuery Mobile jQuery Mobile框架能够帮助你快速开发出支持多种移动设备的Mo ...

  7. 移动web开发框架研究

    纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架.jQuery Mobile出自于jQuery家族 ...

  8. 介绍几个移动web app开发框架

    jQuery Mobile jQuery Mobile框架能够帮助你快速开发出支持多种移动设备的Mobile应用用户界面.jQuery Mobile最新版本是1.4.0,默认主题采用扁平化设计风格.j ...

  9. 移动web开发研究

    1.jQuery Mobile jQuery Mobile框架能够帮助你快速开发出支持多种移动设备的Mobile应用用户界面.jQuery Mobile最新版本是1.4.0,默认主题采用扁平化设计风格 ...

随机推荐

  1. JS—ajax及async和defer的区别

    ###1.ajax  “Asynchronous Javascript And XML”(异步 JavaScript 和 XML) 使用: 如不考虑旧版本浏览器兼容性, // 第一步创建xhr对象 v ...

  2. 阿里巴巴 Java开发手册1.4.0

    <阿里巴巴Java开发手册1.4.0>下载地址: 下载地址:https://102.alibaba.com/downloadFile.do?file=1528269849853/Java_ ...

  3. Linux安装mysql5.6

    安装mysql5.6https://www.cnblogs.com/wangdaijun/p/6132632.html

  4. python之路--字典

    一. 字典 字典是以key:value的形式来保存数据的,用{}表示 字典的增删改查 字典的增加 dic = {"意大利": "李云龙", "美国&q ...

  5. nginx worker_processes 配置

    搜索到原作者的话:As a general rule you need the only worker with large number ofworker_connections, say 10,0 ...

  6. 四、docker compose

    docker compose可以方便我们快捷高效地管理容器的启动.停止以及重启等操作,和批量管理容器,它类似于linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比如用什 ...

  7. Sql Server 时间格式化

    0   或   100   (*)     默认值   mon   dd   yyyy   hh:miAM(或   PM)       1   101   美国   mm/dd/yyyy       ...

  8. 我对领域驱动设计(DDD)的学习成果

    领域驱动设计之领域模型 2004年Eric Evans发表Domain-Driven Design – Tackling Complexity in the Heart of Software (领域 ...

  9. c++中结构体sort()排序

    //添加函数头 #include <algorithm> //定义结构体Yoy typedef struct { double totalprice;         //总价 doubl ...

  10. HackerRank beautiful string

    问题 https://vjudge.net/problem/HackerRank-beautiful-string 给一个字符串S,可以任意取走S中的两个字符从而得到另外一个字符串P,求有多少种不同的 ...