AngularJS 整理一些优化的小技巧_AngularJS

关于优化ng的手段网上已经有很多了,核心都是从$$watchers这个作用域内部属性说起的,今天我来说点别的,本质还是不变的,因为这是ng的硬伤,不过我相信只要运用合适的手法,这些问题还是可以避免的.

ng简介

angularjs简称ng,是google出品的mvvm框架,此在提高前端项目开发效率(实践中来看确实很能提高开发效率),以控制器,指令,服务来围绕整个项目,内部以独有的DI来解决三层之前的调用问题.更多的详情信息可以参考我之前写的ng源码分析.

ng的硬伤

说到硬伤就要先说下它的简单的数据绑定原理

ng里每个页面上定义的model其实都会在当前作用域下添加一个监听器,内部容器就是$$wachers数组,只要页面任何一个model发生变化了,就会触发作用域内部$digest方法,它会依次查找当前作用域树里的所有model,是保证页面上的模型能得到数据同步,所以这个是非常消耗程序时间的,官方的说法就是当页面上出现2000个监听器时,页面性能就会明显下降.所以要提高ng的性能,就要从这方面入手了.

tip1: 一次绑定

其实这个网上别人已经说过了,这里说下新的用法,ng的1.3.0+的版本已经内置提供了一个语法来支持模型只绑定一次的情况,看下面的例子

old code

hello

new code

hello

 可以看到新的语法就是在model前面加上::,相信这个语法要比网上用的第三方插件要方便的多了.

tip2: $scope.$digest vs $scope.$apply

相信很多人对$apply方法不陌生,它一般用在,当不在ng的环境里执行代码的时候,为了保证页面的数据同步,在代码执行完成之后调用$apply方法会触发内部$digest来检查作用域里所有的模型,其实在它的内部是这样调用的,下面只写出一些代码片段

...
...
$rootScope.$digest
...
...

 所有它其实是调用$rootScope根作用域下的$digest,那么不同作用域下的$digest有什么区别呢?其实最重要的区别就在于

$digest 只深度查找调用方下面所有的模型

所以$scope跟$rootScope相比,要节省掉很多查找模型的时间.

不过想要保证页面上所有模型数据的同步,还是得调用$rootScope的,所以在写代码之前最好想想哪些数据是要同步变化的.

tip3: 尽可能少调用 ng-repeat

ng-repeat默认会创建很多监听器,所以在数据量很大的时候,这个非常消耗页面性能,我觉的只有在当需要经常更新数据列表的时候才需要用ng-repeat,要不然放那么多的监听器在那里也是浪费,这时候可以用ng自带的$interpolate服务来解析一个代码片段,类似于一个静态模板引擎,它的内部主要依赖ng核心解析服务$parse,然后把这些填充数据之后的代码片段直接赋给一个一次性的模型性就可以.

tip4: 尽量在指令里写原生语法

虽然ng提供了很多的指令比如ng-show,ng-hide,其实它们作用就是根据模型的true,false来显示或隐藏一个代码片段,虽然能够很快速的实现业务要求,但是这些指令还是默认会添加监听器,假如这些代码片段存在于一个大的指令里面时,更好的方法是在指令link里编写.show(), .hide()这些类似的jq方法来控制比较好,这样可以节省监听器的数量,类似的还有自带的事件指令,这些其实都可以在外围指令里通过使用addEventListener来绑定事件,反正在写代码之前,最好想想怎么样来使监听器的数量最少,这样才能全面的提高页面性能.

tip5: 页面内尽量少用filters

当在页面内的模型后面增加filter时,这个会造成当前模型在$digest里运行两次,造成不必要的性能浪费.第一次在$$watchers检测任务改变时;第二次发生在模型值修改时,所以尽量少用内联时的过滤器语法,像下面这样的非常影响页面性能

推荐使用$filter服务来调用某个过滤器函数在后台,这样能明显的提高页面性能,代码如下

$filter('filter')(array, expression, comparator);

总结

上面都是些提高ng项目性能的一些小技巧,虽然ng很强大,但是不规范的代码也会破坏它的性能,所以在写代码之前最好构思下哪些地方是不需要监听器的.

以上就是对AngularJS 优化方面的资料整理后续继续补充相关资料,谢谢大家对本站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索angularjs
, 优化
, 方法
优化AngularJS
angularjs性能优化、angularjs 优化、angularjs技巧、碎片整理和优化驱动器、css整理与优化工具,以便于您获取更多的相关知识。

时间: 2024-11-10 05:35:50

AngularJS 整理一些优化的小技巧_AngularJS的相关文章

57个用于搜索引擎优化的小技巧

中介交易 SEO诊断 淘宝客 云主机 技术大厅 每个人都喜欢好用的技巧,对吗?这里有57个用于搜索引擎优化的小技巧,这意味着网页设计师和SEO新手中大部分人都能迅速上手,没有任何困难. 1.如果你必须使用Java script的下拉菜单.图片地图.或者图片链接,那么你一定要放置它们的文本链接在页面的某些地方,以便于搜索引擎的蜘蛛抓取; 2.内容为王,因此务必将优秀的,更好的和独特的内容集中在你的一线关键字或关键词上面; 3.如果内容为王,那链接就是王后.使用你的关键字作为链接,建立一个高质量反向

优化Vista小技巧

使用vista操作系统的朋友越来越多,当然大多是品牌机自带的,一般的用户还是倾向于用xp的,由于vista对于硬件要求比较高,所以很多用户的机器运行的不是很流畅,其实有一些小技巧来让你在不升级硬件的情况下,让vista运行的更加流畅一些.请看本文! 一.流畅运行Vista Vista的硬件要求比较高,默认状态下开机就占用高达400MB左右的内存.对于低配置电脑可以关闭Vista的一些特效和服务,以便更流畅运行Vista. 特效资源自己选 Vista可以自定义设置性能,右击开始菜单"计算机&quo

优化的小技巧与网站内容选择

新手站长,做站前一定要明确自己的站点主题是什么,即要清楚自己的站大方向是什么.还是一句老话,新站起步,别好高骛远!别想着一步登天,做综合类站要走的路是很艰难的,做为新入行的,还是先学爬再学走路,走的稳了才能更好更快地跑~ 明确了目标后,要为自己的站选择关键字了,了解下自己的同行有哪些是比较成功比较出名的,了解它们的关键字,尽量让关键字贴切但又不跟别人重复,这样才更容易成功地排在搜索引擎的前列.了解同行的另一目的,就是可以及时地获取到自己需要的内容,自己的能力毕竟有限,别人成功的内容为什么不拿来为

精华:网站内容选择与优化的小技巧

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 新手站长,做站前一定要明确自己的站点主题是什么,即要清楚自己的站大方向是什么.还是一句老话,新站起步,别好高骛远!别想着一步登天,做综合类站要走的路是很艰难的,做为新入行的,还是先学爬再学走路,走的稳了才能更好更快地跑~ 明确了目标后,要为自己的站选择关键字了,了解下自己的同行有哪些是比较成功比较出名的,了解它们的关键字,尽量让关键字贴切但又

客户端js性能优化小技巧整理_javascript技巧

下面是一些关于客户端JS性能的一些优化的小技巧: 1. 关于JS的循环,循环是一种常用的流程控制.JS提供了三种循环:for(;;).while().for(in).在这三种循环中 for(in)的效率最差,因为它需要查询Hash键,因此应尽量少用for(in)循环,for(;;).while()循环的性能基本持平.当然,推荐使用for循环,如果循环变量递增或递减,不要单独对循环变量赋值,而应该使用嵌套的++或--运算符. 2. 如果需要遍历数组,应该先缓存数组长度var len=arr.len

网站优化的3个seo小技巧

网站运营的基础就是优化,对于很多人来讲,想要把网站做好,提升排名,无疑是一件比较苦恼的事.但是做网站优化,实际上也并没有想的那么复杂,有时候我们可以运用一些优化技巧,就可以把网站优化做好.   做好网站优化,提升网站排名小技巧: 1.网站初期关键词的选取 一般来说,刚刚建好的新站是没有多少权重的,就像是没有任何基础的一个新品牌一样,但是并不代表这个网站就不重要了.要想快速将网站排名做到靠前,打好基础也是相当重要的.在网站初期,如果盲目的去跟风,选择一些竞争激烈的"大词",那无疑是自己给

一些优化angularjs的小技巧

关于优化ng的手段网上已经有很多了,核心都是从$$watchers这个作用域内部属性说起的,今天我来说点别的,本质还是不变的,因为这是ng的硬伤,不过我相信只要运用合适的手法,这些问题还是可以避免的. 本文参考老外的一篇blog, --->. ng简介 angularjs简称ng,是google出品的mvvm框架,此在提高前端项目开发效率(实践中来看确实很能提高开发效率),以控制器,指令,服务来围绕整个项目,内部以独有的DI来解决三层之前的调用问题.更多的详情信息可以参考我之前写的ng源码分析.

解析网站优化过程中的小技巧

对于很多比较资深的站长来说,网站优化就是一份轻松有趣且充满自豪感的工作,但是很多新手seoer在学习网站优化时会感觉有些吃力,一方面是不懂得如何贯通优化的思路,另一方面是不知道如何简单的运用一些小技巧来进行网站的优化.下面易水上海SEO简单介绍下网站优化过程中的一些小技巧: 第一点:学会用robots文件.很多站长不理解了,robots.txt文件是一个禁止搜索引擎爬行的文件,seo的工作不就是想让搜索引擎收录吗,为什么要禁止呢?当我们在建设一个新站时,当我们还没有整理好网站或者栏目的title

优化小技巧 通过站内文章提升网站权重

什么是权重?从数学的角度来讲,为了显示若干量数在总量中所具有的重要程度,分别给予不同的比例系数,这就是加权.加权的指派系数就是权数,又称权重.权值.引用到网站的衡量上,就是搜索引擎判断一个网站是否权威的一个标准,最先有权重的说法还是谷歌提出,也就是人们熟知的PR!而国内的百度并无BR一说,都是站长们自己定义的,但大部分站长工具都提供了百度权重的查询,可见权重这个概念在每个站长心中占有很大比重! 百度衡量一个网站的权威度用什么体现,百度官方并没有声明,但从站长们的经验来看,站长工具给出的百度权重的